【发布时间】:2014-01-02 23:03:21
【问题描述】:
我有一个form 和bootstrap,效果很好。并且 jQuery 验证工作正常。说到ajax提交代码,有问题。即使form 未经验证,提交也有效。
假设我将一个字段留空并按下提交,它会突出显示空字段上的错误,但 ajax 仍会提交 form。
如何停止操作并要求验证?
这是form 标记:
<form id="booking" method="post" class="form" action="" >
....some input fields here....
<button type="submit" id="submit" class="btn btn-large btn-block btn-primary">Book Now</button>
</form>
这是 jQuery 验证:
$('form').validate({
rules: {
firstname: {minlength: 2, maxlength: 40, required: true},
lastname: {minlength: 2, maxlength: 40, required: true},
email: {email: true, required: true},
country: {required: true},
mobile: {minlength: 2, maxlength: 40, required: true},
address: {minlength: 3, required: true}
},
});
这部分是ajax()提交:
$('#booking').on('submit', function(e) {
e.preventDefault();
var form = $(this);
var post_url = form.attr('action');
var post_data = form.serialize();
$('#loader', form).html('<img src="http://www.fethiye-tours.com/assets/images/lightbox/loading.gif" /> Please Wait...');
$.ajax({
type: 'POST',
url: 'http://www.fethiye-tours.com/book.php',
data: post_data,
success: function(msg) {
$(form).fadeOut(500, function(){
form.html(msg).fadeIn();
});
}
});
});
【问题讨论】:
-
您的
.validate()调用必须不带任何换行符吗?
标签: ajax forms twitter-bootstrap jquery-validate