1

多くの要素が必要なフォームがあり、送信前に焦点を合わせない限り、最後の要素を無視しているように見えるjQuery検証スクリプトに苦労しています。以下の問題を再現する、より単純な例を作成しました。

http://jsfiddle.net/nzRqZ/

<form id="testForm">
    <label>Type:</label>
    Sample Text 1: <input type="text" class="required"/><br>
    Sample Text 2: <input type="text" class="required"/><br>
    <button type="button" id="submitButton">Submit</button>
</form>
$(document).ready(function() {
    var validator = $('#testForm').validate({

    });

    $("#submitButton").click(function() {
        if (validator.form()) {
            alert("Validation passed");
        } 
    });    
});

ページを開いてすぐに [送信] ボタンを押すと、最初の要素にのみ検証エラーが表示されることがわかります。次に、最初の入力に何かを入力しますが、2 番目の入力には触れずにもう一度 [送信] をクリックします。検証に合格します!私はそれらの両方に必要でしたが!

4

1 に答える 1

1

これはバグではなく、name 属性が必要であることが文書化されているだけです。とにかく、すべての入力には一意の名前が必要です。

検証プラグインが正しく機能するには、各入力に name 属性が必要です。

<form id="commentForm">
     <label>1</label><input name="1" type="text" class="required"/><br/>
     <label>2</label><input name="2" type="text" class="required"/><br/>
     <label>3</label><input name="3" type="text" class="required"/><br/>
     <label>4</label><input name="4" type="text" class="required"/><br/>
     <button type="submit" id="submitButton">Submit</button>
</form>

ここにフィドルがあります。

http://jsfiddle.net/VbWLU/

于 2013-04-09T18:40:54.290 に答える