フォームがあり、パスワードフィールドが入力されているかどうかを検証するために非表示入力を取得する際に問題が発生します。jQuery他のフィールドに値がある場合にのみ非表示の入力を検証する
<div class="form-group">
<label for="password" class="control-label col-sm-4">Password: </label>
<div class="col-lg-6">
<input type="password" placeholder="Your Password" id="password" name="password" class="form-control" autocomplete="off">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">Password Strength</label>
<div class="col-sm-6" id="password-meter">
<div class="progress">
<div class="progress-bar" id="password-meter-progress"></div>
<input type="hidden" name="password_strength" id="password_strength">
</div>
</div>
</div>
<div class="form-group">
<label for="confirm_password" class="control-label col-sm-4">Confirm Password: </label>
<div class="col-lg-6">
<input type="password" placeholder="Confirm Password" id="confirm_password" name="confirm_password" class="form-control" autocomplete="off">
</div>
</div>
このようなボタンをクリックすると、何もしません。私はv.errorList
をログアウトしようとしましたが、そこに何も表示されません。ここ
$('#button').click(function() {
if (v.form()) {
$('.frm').hide('fast');
$('#sf2').show('slow');
}
});
は私の検証コード
function isPasswordPresent() {
return $('#password').val() !== '';
}
var v = $('#onboardingform').validate({
ignore: [],
rules: {
password: {
required: true,
minlength: 6,
},
confirm_password: {
required: true,
minlength: 6,
equalTo: "#password",
},
password_strength: {
min: {
depends: isPasswordPresent,
param: 60
}
}
},
messages: {
password_strength: {
min: 'Enter a strong password'
}
},
errorElement: "span",
errorClass: "help-inline",
});
わからない、あなたのすべてのコードが含まれている場合は、あなたが持っている場合は、ボタンでをターゲットにしていますボタンのidですが、そのidのボタンはありません。クリックイベント内のフォームについても同様です。 –
これは問題ではありません。私は問題が無視されていることを発見しました:[] ,.私が削除した場合、フォームは有効であるが、従属ルールは機能しなくなる –
それは意味をなさない。 'ignore:[]'は単に何も無視することを意味します。隠しフィールドを検証します。 – Sparky