1

我不明白为什么我的代码不起作用。首先我有这个表格:

形式

第一个区域是强制性的 && 最后三个只有一个是强制性的

所以我试试这段代码:

<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>

我的问题是当我单击下一步时:

  • -> 我还没有完成所有输入:return false OK
  • -> 如果我完成了第一个输入但没有完成另一个:返回 true BAD

我想如果三个字段之一不是强制性的,那么我返回 false。

4

1 回答 1

2

您需要将 || 放在一组单独的括号中

如果 1 和 2 为真,如果 3 为真,或者如果 4 为真,那么现在的方式返回真。

编辑 对不起,我走的是另一条路。您必须切换 || 和 &&。它应该是:

if($("#nomFiltre").val().length < 1 || ($("#provenanceFiltre").val().length < 1 && $("#destinataireFiltre").val().length < 1 && $("#objetFiltre").val().length < 1))
于 2013-07-02T14:57:32.203 回答