77

パスワード入力を確認するために jQuery 検証プラグインを使用しようとしています。

ただし、必須フィールドにしたくありません。

ユーザーがパスワードを変更したい場合は、パスワードを確認する必要があります。

そうでない場合、両方のフィールドを検証しないでください。

jQuery('.validatedForm').validate({
    rules: {
        password: {
            required: true,
            minlength: 5
        },
        password_confirm: {
            required: true,
            minlength: 5,
            equalTo: "#password"
        }
    }
}); 

これは完全に機能していますが、両方のフィールドが必要です。

たとえば、誰かが自分の電子メールやユーザー名を変更してパスワードをそのままにしておきたい場合に備えて、これをオプションにしたいと思います。

4

6 に答える 6

161

required: trueルールを削除します。

デモ:フィドル

jQuery('.validatedForm').validate({
            rules : {
                password : {
                    minlength : 5
                },
                password_confirm : {
                    minlength : 5,
                    equalTo : "#password"
                }
            }
于 2013-02-05T09:04:57.303 に答える
8

id 値と name 値が異なる場合に機能します。

<input type="password" class="form-control"name="password" id="mainpassword">
password: {     required: true,     } , 
cpassword: {required: true, equalTo: '#mainpassword' },
于 2015-09-24T07:12:21.683 に答える
7
jQuery('.validatedForm').validate({
        rules : {
            password : {
                minlength : 5
            },
            password_confirm : {
                minlength : 5,
                equalTo : '[name="password"]'
            }
        }

通常、このように使用することはありませんid="password"[name="password"]したがって、代わりに使用できます"#password"

于 2016-05-11T14:36:10.613 に答える
3

私はそれを Play Framework に実装していますが、私にとっては次のように機能しました。

1) ID inputPassword1 の入力タグで data-rule-equalTo を使用したことに注意してください。私のモーダルのユーザーフォームのコードセクション:

<div class="form-group">
    <label for="pass1">@Messages("authentication.password")</label>
    <input class="form-control required" id="inputPassword1" placeholder="@Messages("authentication.password")" type="password" name="password" maxlength=10 minlength=5>
</div>
<div class="form-group">
    <label for="pass2">@Messages("authentication.password2")</label>
    <input class="form-control required" data-rule-equalTo="#inputPassword1" id="inputPassword2" placeholder="@Messages("authentication.password")" type="password" name="password2">
</div>

2)モーダル内でバリデーターを使用したため

$(document).on("click", ".createUserModal", function () {
       $(this).find('#userform').validate({
           rules: {
               firstName: "required",
               lastName: "required",
               nationalId: {
                   required: true,
                   digits:true
               },
               email: {
                   required: true,
                   email: true
               },
               optradio: "required",
               password :{
                   required: true,
                   minlength: 5
               },
               password2: {
                   required: true
               }
           },
           highlight: function (element) {
               $(element).parent().addClass('error')
           },
           unhighlight: function (element) {
               $(element).parent().removeClass('error')
           },
           onsubmit: true
       });

   });

それが誰かを助けることを願っています:)。

于 2016-10-26T07:12:39.713 に答える