2013-07-02 54 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