我有一个模式表单,用户必须完成表单(否则验证将显示必填字段错误消息),然后单击“提交输入类型”,不执行任何操作,然后再次单击它,然后将通过ajax发布,并返回“谢谢”消息。
我环顾了Stackoverflow,并为遇到的问题应用了答案,但仍然无法正常工作。我确实删除了event.preventDefault();
从中,以及$(“#review-
form”)。submit(function(event){,然后单击一次提交输入后,表单将按应有的方式提交,但不会发布到数据库中。
以下是#review-form的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();
});
}
});
更新:我删除了$(“#review-form”)。submit(function(event){}); 然后我更改了$(this).find
…,并通过指定#form-
review的表单ID进行了检索,然后通过了data参数。我注释掉所有单独的变量,只是将$(this).serialize()传递到data参数中,但这没有用。
以下代码可在chrome和firefox中使用,但在firefox中,它将关闭模式并重定向到域的首页,它应使用谢谢msg保持模式打开,就像在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
事件处理程序submitHandler
。该处理程序不会立即触发,因为submit事件已经在进行中。
不用了 该submitHandler
回调将已经preventDefault
在内部插件代码中
删除这个
$("#review-form").submit(function(event) { })
并保留其中包含的所有代码 submitHandler
由于您使用serialize()
的是数据…。您不需要创建任何一个单独的字段变量
问题内容: 我需要从HTML页面执行以下活动: 用户输入电子邮件和密码进行注册 用户单击时将表格发送到控制器 Control使用AJAX创建到RESTful Server的JSON请求,服务器进行相应的响应。 根据服务器的响应,用户应获得警报窗口,并在“提交”下方的当前页面()上显示一条消息。如果是“成功-已注册”或“失败-无法注册”。 但是,目前它的工作方式如下:1),2),3)正常工作。 用户
问题内容: 我有一个要通过jQuery捕获并通过AJAX发送的表单。我的问题是,每次刷新页面时,表单都会提交多次。 我尝试取消绑定“提交”按钮,但通常在第一次提交后发布表单。任何帮助,将不胜感激 问题答案: 您最有可能正在使用或触发ajax事件。试试这个:
本文向大家介绍jQuery EasyUI提交表单验证,包括了jQuery EasyUI提交表单验证的使用技巧和注意事项,需要的朋友参考一下 EasyUI的form表单里面的验证框,先讲解下validatebox类和相关的属性。 验证规则 验证规则是通过使用 required 和 validType 特性来定义的, 这里是已经实施的规则: email:匹配 email 正则表达式规则,系统提供的属性
我有一个登录表单,它与一起工作,并连接到。问题是它被提交了两次。请查看以下内容。 JavaScript代码 我的HTML表单 下面是我的servlet(提交表单的地方),如果你感兴趣的话 在我的IDE控制台中,输出如下(输出由打印)
问题内容: JavaScript位: HTML位: 这就是我要使用的代码。我的想法是在使用Ajax发送表单之前,先验证所有输入。我现在已经尝试过许多版本,但是每次即使表单没有完全填写,最终还是要提交。我所有的输入都是“必需”类的。谁能看到我做错了吗? 另外,由于我的输入名称是用php生成的,因此我依赖于基于类的要求,因此我永远无法确定自己获得的名称或输入类型。 我在“页面”中显示/隐藏问题。 JS
问题内容: 我有一个看起来像这样的表格: 当我绑定到表单的Submit()时,似乎无法访问用户单击的图像。因此,我试图绑定到单击图像本身(),该图像总是提交表单,无论我是否尝试 返回false; event.stopPropogation(); 要么 event.preventDefault(); 因为所有这些都是表单事件。 我应该将$ .post()附加到form.submit()事件上吗,如果