如何用“和”和“或”制作一个javascript“if”语句?

时间:2013-12-13 02:21:29

标签: javascript jquery html

我正在尝试创建一个页面,您可以在其中填写一些输入框并选中一个单选按钮,如果您完成所有操作,则可以单击一个div,然后动画就会发生。特定的输入框不是页面上的唯一输入框。我正在尝试使用javascript“if”语句,在括号中有一堆“和”和“或”,但是当我打开页面时,代码不会运行。这不是我的所有代码,我知道javascript和它的库是链接的,因为我已经编写了这个网站一段时间,一切都已经工作到现在。我在javascript验证器中检查了代码,看起来很好。我不确定我做错了什么。

$(document).ready(function(){
    if ( $(".managementCompanyName").val() !== '' && 
     $(".approvedBy").val() !== '' && 
     $(".contractStartDate").val() !== '' && 
     $(".proposalNumber").val() !== '' && 
     $(!$("input[name='proposalReviewedForInvoice']:checked").val() || !$("input[id='proposalNotReviewedForInvoice']:checked").val()) )  {
        //do stuff
    }
});

或者我有

$(document).ready(function(){
    if (   $(".managementCompanyName").val() !== "" && 
       $(".approvedBy").val() !== "" && 
           $(".contractStartDate").val() !== "" && 
       $(".proposalNumber").val() !== "" && 
       $("input[name='proposalReviewedForInvoice']:checked").val() !== "" )  {
           //do stuff
    }
});

此代码似乎适用于网站的另一部分,其中只有一个输入作为要求。 谢谢你,如果你能发现我的错误。

2 个答案:

答案 0 :(得分:4)

||部分括在括号中,否则||的第一个操作数实际上是最后一个&&的结果。

/*$*/(!$("input[name='proposalReviewedForInvoice']:checked").val() ||  
      !$("input[id='proposalNotReviewedForInvoice']:checked").val()) )  {

实际上,你似乎把它们包裹在$()中,它总会返回一个jQuery对象,在这种情况下它总是“真实的”。

答案 1 :(得分:0)

如果您只使用“OR(||)”条件,则可以更好地处理错误。

$(document).ready(function(){
    var management = $(".managementCompanyName").val();
    var approved = $(".approvedBy").val();
    var contract = $(".contractStartDate").val();
    var proposed_num = $(".proposalNumber").val();
    var proposed_rev = $("input[name='proposalReviewedForInvoice']:checked").val();

    if ( management == '' || approved == '' || contract == '' || proposed_num == ''
         || proposed_rev == '' ) {
        // error message
    } else {
        // do stuff
    }
});