2013-12-13 49 views
0

我正在嘗試製作一個頁面,您可以在其中填寫一些輸入框並檢查一個單選按鈕,並且如果完成了所有這些操作,則可以單擊一個div併發生動畫。具體的輸入框不是頁面上的唯一輸入框。我試圖使用一個JavaScript「if」語句,在括號中有一堆「和」和一個「或」,但是當我打開頁面時,代碼不會運行。這不是我所有的代碼,而且我知道JavaScript和它的庫鏈接,因爲我已經編寫了一段時間的這個網站,並且一切都一直在努力。我檢查了一個JavaScript驗證器中的代碼,它看起來很好。我不確定我做錯了什麼。你如何用「and」和「or」製作javascript「if」語句?

$(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 
    } 
}); 

此代碼似乎在那裏只有一個爲要求輸入該網站的另一部分工作。 謝謝,如果你能發現我的錯誤。

+0

錯誤控制檯說什麼? –

+0

'||'綁定比'&&'強,請參見[運算符優先級](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence) – elclanrs

回答

4

||部分括在括號內,否則||的第一個操作數實際上是最後一個&&的最後一個結果。

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

而實際上你似乎已經而是他們裹在$(),它總是會返回一個jQuery對象,這將永遠是「truthy」的狀態。

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 
    } 
});