我很难理解IF声明的限制和可能性。我只是想知道写下面的最好和最短的方式。基本上我只想在输入为空或者textarea仍然包含其默认值时返回false。这个表格是名称,电子邮件,电话和评论,其中手机是可选的,所以我不能只针对所有输入。
$('form').submit(function(){
if ( $('#email').val() == '') {
return false;
} else if ($('#name').val() == '') {
return false;
} else if ($('textarea').val() === 'Enter comments here.') {
return false;
}
});
此代码有效,但占用了大量空间。谢谢!
答案 0 :(得分:6)
将您的条件合并为一个逻辑语句,如下所示:
return !(($('#email').val() == '')
|| ($('#name').val() == '')
|| ($('textarea').val() === 'Enter comments here.'));
爆炸符号(!)是NOT;它会反转逻辑,如果任何条件成功则返回false,如果没有成功则返回true。
答案 1 :(得分:3)
你可以用这个单线程来做到这一点:
$('form').submit(function(){
if ( $('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') return false;
});
答案 2 :(得分:1)
“最佳”和“最短”不一定相同。我相信“最佳”解决方案通常是最具可读性的。考虑到您的示例,您可以使用类似的内容(不需要if
):
$('form').submit(function(){
var emailSet = $('#email').val() != '';
var nameSet = $('#name').val() != '';
var placeholderReplaced = $('textarea').val() !== 'Enter comments here.';
return emailSet && nameSet && placeholderReplaced;
});
答案 3 :(得分:0)
$('form').submit(function(){
if ( $('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') {
return false;
} });
答案 4 :(得分:0)
试试这个。
return !$('#email').val()
|| !$('#name').val()
|| $('textarea').val() !== 'Enter comments here.';
答案 5 :(得分:0)
你可以这样做:
$("form").submit(function () {
var checkValue = function (selector, value) {
return $(selector).val() == value;
};
return checkValue("#email", "")
&& checkValue("#name", "")
&& checkValue("textarea", "Enter comments here.");
});
如前所述,您应该更多地考虑代码的可读性和可维护性,而不仅仅是大小。