提交表单并绕过 jQuery 验证 submitHandler
Submit form and bypass jQuery validation submitHandler
考虑以下脚本。验证脚本后,如果他们更改了电子邮件,我希望显示一个对话框提示他们输入密码。如果密码被检查出来,服务器将只更新数据库。
问题是它会导致无限循环,因为对话框按钮会提交表单,而表单又会启动对话框。我意识到如果 $('#password')
不为空我就不会触发对话框,但是,我的实际脚本更复杂,并且 "nice" 以某种方式提交表单并绕过 jQuery验证 submitHandler.
这可能吗?如果是,怎么做?
var validator=$("#main_form").validate({
rules: {},
messages: {},
submitHandler: function(form) {
if(emailedChanged) {
$("#dialog-password").dialog("open");
}
else {form.submit();}
}
});
$('#dialog-password').dialog({
buttons : [
{
text : 'SAVE',
click : function() {
$('#password').val($(this).find('input').val());
$('#main_form').submit();
}
},
{
text : 'CANCEL',
click : function() {$(this).dialog("close");}
}
]
});
您可以捕获点击事件并阻止它提交表单(从而阻止 submitHandler 触发)。然后在单击事件的处理程序中,您可以添加所需的功能。
- 检查电子邮件是否已更改,如果已更改,则显示对话框,如果单击保存按钮,该对话框将依次提交表单。
如果邮箱没改过,直接触发表单的提交事件
$("#hj").click(function (ev) {
ev.preventDefault();
if (emailedChanged) {
$("#dialog-password").dialog("open");
} else {
$("#main_form").submit();
}
});
考虑以下脚本。验证脚本后,如果他们更改了电子邮件,我希望显示一个对话框提示他们输入密码。如果密码被检查出来,服务器将只更新数据库。
问题是它会导致无限循环,因为对话框按钮会提交表单,而表单又会启动对话框。我意识到如果 $('#password')
不为空我就不会触发对话框,但是,我的实际脚本更复杂,并且 "nice" 以某种方式提交表单并绕过 jQuery验证 submitHandler.
这可能吗?如果是,怎么做?
var validator=$("#main_form").validate({
rules: {},
messages: {},
submitHandler: function(form) {
if(emailedChanged) {
$("#dialog-password").dialog("open");
}
else {form.submit();}
}
});
$('#dialog-password').dialog({
buttons : [
{
text : 'SAVE',
click : function() {
$('#password').val($(this).find('input').val());
$('#main_form').submit();
}
},
{
text : 'CANCEL',
click : function() {$(this).dialog("close");}
}
]
});
您可以捕获点击事件并阻止它提交表单(从而阻止 submitHandler 触发)。然后在单击事件的处理程序中,您可以添加所需的功能。
- 检查电子邮件是否已更改,如果已更改,则显示对话框,如果单击保存按钮,该对话框将依次提交表单。
如果邮箱没改过,直接触发表单的提交事件
$("#hj").click(function (ev) { ev.preventDefault(); if (emailedChanged) { $("#dialog-password").dialog("open"); } else { $("#main_form").submit(); } });