パスワードエントリを確認するためにjQuery validateプラグインを使用しようとしています。
ただし、必須フィールドにしたくありません。
ユーザーがパスワードを変更する場合は、確認する必要があります。
そうでない場合、両方のフィールドを検証しないでください。
jQuery('.validatedForm').validate({
rules: {
password: {
required: true,
minlength: 5
},
password_confirm: {
required: true,
minlength: 5,
equalTo: "#password"
}
}
});
これは完全に機能していますが、再び、両方のフィールドが必要です。
たとえば、誰かがメールやユーザー名を変更したいだけで、パスワードをそのままにしたい場合に備えて、このオプションを使用したいと思います。
required: true
ルールを削除します。
デモ: フィドル
jQuery('.validatedForm').validate({
rules : {
password : {
minlength : 5
},
password_confirm : {
minlength : 5,
equalTo : "#password"
}
}
他の人を助けるためにここにちょっとしたチャイム...特に新しいバージョンでは(これは2歳ですので)...
JSでいくつかの静的フィールドを定義する代わりに、data-rule-*
属性を使用することもできます。組み込みのルールとカスタムルールを使用できます。
組み込みルールについては、 http://jqueryvalidation.org/documentation/#link-list-of-built-in-validation-methods を参照してください。
例:
<p><label>Email: <input type="text" name="email" id="email" data-rule-email="true" required></label></p>
<p><label>Confirm Email: <input type="text" name="email" id="email_confirm" data-rule-email="true" data-rule-equalTo="#email" required></label></p>
data-rule-*
属性に注意してください。
Id値とname値が異なる場合に機能します:
<input type="password" class="form-control"name="password" id="mainpassword">
password: { required: true, } ,
cpassword: {required: true, equalTo: '#mainpassword' },
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
});
});
それが誰かを助けることを願っています:)。
jQuery('.validatedForm').validate({
rules : {
password : {
minlength : 5
},
password_confirm : {
minlength : 5,
equalTo : '[name="password"]'
}
}
一般的に、このようなid="password"
は使用しません。したがって、[name="password"]
の代わりに"#password"
を使用できます