0
我的following fiddle與我的問題。對於AJAX登錄表單不工作的bootbox + jQuery.validator
當我在模態空白表單上按登錄時,驗證器應該標記錯誤的字段。此外,表單應在驗證通過時提交。
在控制檯中沒有錯誤,它不起作用。下面
這條線在我的代碼似乎不起作用像它在this other fiddle:
var form = $("#ajax_login_form");
form.validate();
我錯過了什麼?謝謝!
使用jQuery的驗證,我有以下JS:
/**
* Login modal form
*/
function loginModal() {
var content = $("#login_form").html();
$("#login_form").detach();
bootbox.dialog({
title: "TEST",
message: content,
size: 'medium',
className: 'modal-primary',
buttons: {
success: {
label: "Sign in",
className: "btn btn-sm btn-primary",
callback: function() {
loginValidator();
var form = $("#ajax_login_form");
form.validate();
return false; // keeps dialog open
}
}
},
onEscape: function() {
logout();
}
});
}
/**
* Validator for login AJAX form
*/
function loginValidator() {
$("#ajax_login_form").validate({
rules: {
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 8
}
},
messages: {
email: "Please enter a valid email address",
password: {
required: "Please provide a password",
minlength: $.validator.format("Your password must be at least {0} characters long")
}
},
submitHandler: function(form) {
alert("submitted!");
return false;
}
});
}
的HTML是:
<div id="login_form" style="display:none;">
<form method="post" action="#" accept-charset="UTF-8" class="form" id="ajax_login_form" name="ajax_login_form">
<div class="form-group">
<input class="form-control" id="email" placeholder="Your email" name="email" type="email" />
</div>
<div class="form-group">
<input class="form-control" id="password" placeholder="Your password" name="password" type="password" value="" />
</div>
<div class="form-group">
<input type="checkbox" name="remember" />
<label for="remember"> Remember Me
</label>
</div>
</form>
</div>
嗨,是的驗證在空字段上工作,但表單不提交。但它使用'.validate()'完成我的另一個小提琴。 – TheRealPapa
好的,然後用'.submit();'替換'.validate();'提交表單,如果它是有效的。 –
它在另一個小提琴中起作用的原因是因爲它在第一個小提琴中使用'type =「按鈕」'按鈕時使用'type =「submit」'按鈕。 –