2013-07-02 53 views
1

我不明白爲什麼我的代碼不起作用。 首先,我有這樣的形式:基本條件&&或||在javascript

form

第一個方面是強制& &過去三年只有一個是強制性

所以我嘗試此代碼:

<div class="modal-body"> 
    <div class="filtre"></div> 
    <h5>Ajouter votre filtre</h5> 
    <p>Nom du filtre 
     <input type="text" class="span12" name="nomFiltre" id="nomFiltre"> 
    </p> 
    <p>De :</p> 
    <input type="text" class="span12" name="provenanceFiltre" id="provenanceFiltre"> 
    <p>A :</p> 
    <input type="text" class="span12" name="destinataireFiltre" id ="destinataireFiltre"> 
    <p>Objet : </p> 
    <input type="text" class="span12" name="objetFiltre" id="objetFiltre"> 

</div> 

而且該JavaScript :

<script type="text/javascript"> 

    $(function(){ 
     $("#filtreVerif").click(function(){ 
      if($("#nomFiltre").val().length < 1 && $("#provenanceFiltre").val().length < 1 || $("#destinataireFiltre").val().length < 1 || $("#objetFiltre").val().length < 1){ 
       $('<div class="alert alert-error hide"><h4 class="alert-heading">Erreur !</h4>Vous devez entrer un titre est remplire au moins un des critéres !</div>').appendTo('.filtre').show("slow").delay(4000).hide("slow"); 
       return false; 
      } 
     }); 
    }); 

</script> 

我的問題是,當我點擊下一步:

  • - >我還沒有完成所有的輸入:返回false OK
  • - >如果我已經完成了第一個輸入而不是其他:還真BAD

我想如果三個字段之一不是空的強制性的話,那麼我返回false。

回答

2

你需要把你的||的一個單獨的括號

你現在如果1和2是真返回true的方式,如果3是真實的,或者如果4是真的。

編輯 對不起,我是以另一種方式。您必須切換||和& &'s。它應該是:

if($("#nomFiltre").val().length < 1 || ($("#provenanceFiltre").val().length < 1 && $("#destinataireFiltre").val().length < 1 && $("#objetFiltre").val().length < 1)) 
+0

THX,我想我可以理解的區別||和&& :) – mpgn