1

コードが機能しない理由がわかりません。最初に私はこのフォームを持っています:

形

最初の領域は必須 && 最後の 3 つの領域は 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 を返す

3 つのフィールドのうちの 1 つが必須ではない場合、false を返します。

4

1 に答える 1

2

|| を別の括弧のセットに入れる必要があります

これで、1 と 2 が true の場合、3 が true の場合、または 4 が true の場合に true が返されます。

編集 申し訳ありませんが、私は別の方法で行っていました。|| と && を入れ替える必要があります。そのはず:

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