Jquery 编写IF语句的最佳方法

Jquery 编写IF语句的最佳方法,jquery,Jquery,我很难理解IF语句的局限性和可能性。我只想知道写以下内容的最佳和最短的方法。本质上,我只想在输入为空或textarea仍包含其默认值时返回false。这个表格是姓名、电子邮件、电话和评论,其中电话是可选的,所以我不能只针对所有输入 $('form').submit(function(){ if ( $('#email').val() == '') { return false; } else if ($('#name').val() == '') {

我很难理解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;
    }
});

这段代码可以工作,但它会占用大量空间。谢谢

你可以用这一行:

$('form').submit(function(){
    if ( $('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') return false;
});​

将条件组合成一个逻辑语句,如下所示:

return !(($('#email').val() == '') 
     || ($('#name').val() == '') 
     || ($('textarea').val() === 'Enter comments here.'));
$("form").submit(function () {
    var checkValue = function (selector, value) {
        return $(selector).val() == value;
    };

    return checkValue("#email", "") 
        && checkValue("#name", "") 
        && checkValue("textarea", "Enter comments here.");
});
砰的一声符号(!)不是;它反转逻辑,如果任何条件成功,则返回false,如果任何一个条件都不成功,则返回true。

“最佳”和“最短”不一定相同。我相信“最好”的解决方案通常是最具可读性的。考虑到您的示例,您可以使用如下内容(如果需要,则无
):

$('form').submit(function(){
if ( $('#email').val() == '' || $('#name').val() == '' || $('textarea').val() === 'Enter comments here.') {
    return false;
} });
试试这个

return !$('#email').val() 
       || !$('#name').val() 
       || $('textarea').val() !== 'Enter comments here.';

你可以这样做:

return !(($('#email').val() == '') 
     || ($('#name').val() == '') 
     || ($('textarea').val() === 'Enter comments here.'));
$("form").submit(function () {
    var checkValue = function (selector, value) {
        return $(selector).val() == value;
    };

    return checkValue("#email", "") 
        && checkValue("#name", "") 
        && checkValue("textarea", "Enter comments here.");
});

如前所述,您可能应该更多地考虑代码的可读性和可维护性,而不仅仅是大小。

如何记住每个控件的默认值?(新的``placeholder`属性,使用
数据
属性等?)嗯,我认为逻辑与OP想要的相反。修好了,我明白了。返回$('#email').val()!=''&&$(“#name”).val()!=”&&$('textarea').val()!='在此处输入注释。“)
没错,您是。。。对于OP来说,良好的锻炼不是我想要的,而是我需要的。谢谢