我有一个模式表单,用户必须填写表单(否则验证会显示必填字段的错误信息),然后点击提交输入类型,它什么都不做,然后再次点击它,然后它会通过ajax发布,并返回“谢谢”消息。jquery验证需要点击提交两次才能提交表格
我看了看周围的Stackoverflow并应用了我遇到的问题,但是我仍然无法使其工作。我确实删除了event.preventDefault();从它,以及$(“#review-form”)。submit(function(event){和表单提交后应该像点击提交后一样提交,但是它不会发布到数据库中
下面是jQuery的为#审查形式
$("#review-form").validate({
submitHandler: function() {
$("#review-form").submit(function (event) {
var rating = $(this).find('input[name=rating]');
// var rating = $(this).find('input[name=rating]').val();
var review = $(this).find('textarea[name=review]');
var form_settings = $(this).find('input[name=form_settings]');
var xid = $(this).find('input[name=XID]');
var entry_id = $(this).find('input[name=entry_id]');
var entry_type = $(this).find('input[name=entry_type]');
var site_id = $(this).find('input[name=site_id]');
var first_name = $(this).find('input[name=first_name]');
var middle_initial = $(this).find('input[name=middle_initial]');
$.ajax({
url: $("#review-form").attr("action"), //your server side script
data: $(this).serialize(),
type: 'POST',
success: function (data) {
//$('#response').append('<li>' + data + '</li>');
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
event.preventDefault();
});
}
});
更新:我删除了$( “#检讨形式”)提交(函数(事件){});我,改变了$(本) .find ...,并通过指定表单的ID#form-review,然后通过数据参数来检索。我注释掉了所有的单个变量,并将$(this).serialize()传递给数据参数,不起作用
下面的代码在Chrome和Firefox的工作,但在Firefox,它关闭模式并重定向到站点的主页,它应该保持模式与您味精感谢开放的,像它在Chrome中的作用:
$("#review-form").validate({
submitHandler: function() {
$.ajax({
url: $("#review-form").attr("action"), //your server side script
data: $("#review-form").serialize(),
type: 'POST',
success: function (data) {
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
event.preventDefault();
}
});
最终工作产品:
$("#review-form").validate({
submitHandler: function() {
$.ajax({
url: $("#review-form").attr("action"),
data: $("#review-form").serialize(),
type: 'POST',
success: function (data) {
$('#review-form').hide();
$('#review-form-response').html("<h3 style='text-align:center;'>Thank you, your review was submitted!</h3>");
},
error: function (jxhr, msg, err) {
$('#response').append('<li style="color:red">' + msg + '</li>');
}
});
}
});
你一定要删除'$(“#检讨形式”)。submit'调用时,被绑定在第一次点击,这就是为什么你所得到的提交处理程序死点击。你是否从你的'$ .ajax'调用中收到错误? – Mathletics
@Mathletics谢谢,这有帮助。 – Brad