54

focusInvalidデフォルトであるオプションがありtrueます。ただし、フォームの送信が発生した場合にのみ機能します。メソッドでフォームを検証するとvalid、機能しません。問題は、valid使用時に無効なフィールドにフォーカスする方法です。

このデモを見て違いを確認してください。そこでボタンを押すだけ。

4

2 に答える 2

66

を使用するinvalidHandlerと、失敗した最初の要素にフォーカスを設定できます。

$("#form").validate({
    onfocusout: false,
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {                    
            validator.errorList[0].element.focus();
        }
    } 
});
于 2012-04-11T19:12:44.623 に答える
54

まず、バリデーターを変数に保存して、クリック ハンドラーで使用できるようにする必要があります。

var validator = $("#test-form").validate({ /* settings */ });

次に、検証ハンドラーで、変数focusInvalidから関数を手動で呼び出すことができます。validator

  $("#validate").click(function() {
        if ($("#test-form").valid()) 
              alert("Valid!");
        else
              validator.focusInvalid();

        return false;
  });

于 2012-04-11T19:12:30.897 に答える