5

Jquery でカスタム検証を使用しようとしています。すべてのコーディング部分は正しいですが、どこが間違っているのかわかりません...これがコードの一部です。

Password:<input type="password" id="pnameTxt" name="pnameTxt" placeholder="Enter Password" size=12 class='required'><br>
Confirm Password:<input type="password" id="pnameTxt2" name="pnameTxt2" placeholder="Retype Password" size=15 class='required passwordCheck'><br>

カスタム検証方法:

 $.validator.addMethod("passwordCheck",function (value,element){
          return value==$("#pnameTxt").val(); 

        }, 'Password and Confirm Password should be same');
4

2 に答える 2

34

コードは機能しています。プラグインをで初期化するときにも、フィールドにルールを割り当てる必要があります.validate()

動作中のデモ:http : //jsfiddle.net/KrLkF/

$(document).ready(function () {

    $.validator.addMethod("passwordCheck", function (value, element) {
        return value == $("#pnameTxt").val();
    }, 'Password and Confirm Password should be same');

    $('#myform').validate({ // initialize the plugin
        rules: {
            pnameTxt2: {
                passwordCheck: true
            }
        }
    });

});

ただし、この機能のカスタムメソッドを作成する必要はありません。jQuery ValidateプラグインにはすでにequalToルールがあり、その使用方法は次のとおりです。

動作中のデモ:http : //jsfiddle.net/tdhHt/

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            pnameTxt2: {
                equalTo: "#pnameTxt" // using `id` of the other field
            }
        },
        messages: {
            pnameTxt2: {
                equalTo: "Password and Confirm Password should be same"
            }
        }
    });

});
于 2013-03-23T20:32:21.247 に答える
1

検証プラグインを正しく初期化しましたか? HTMLをaに入れると、form期待initialize the pluginどおりに機能します。

<form id="test">
Password:<input type="password" id="pnameTxt" name="pnameTxt" placeholder="Enter Password" size=12 class='required'><br>
Confirm Password:<input type="password" id="pnameTxt2" name="pnameTxt2" placeholder="Retype Password" size=15 class='required passwordCheck'><br>
<input type="submit">
</form>
$.validator.addMethod("passwordCheck",function (value,element){
      return value==$("#pnameTxt").val(); 

    }, 'Password and Confirm Password should be same');

$('#test').validate();
于 2013-03-23T16:43:16.630 に答える