jQuery submit()和AJAX事件;如何触发常规表单提交?
我正在处理一个项目,当单击submit按钮时,我捕获事件并通过外部服务运行表单以检查某些内容是否有效 如果有问题,我弹出一个对话框,告诉用户有问题,并给他们覆盖选项继续 问题是如何触发表单提交。如果我只使用.submit,它会再次将表单发送到对话框中jQuery submit()和AJAX事件;如何触发常规表单提交?,jquery,forms,form-submit,Jquery,Forms,Form Submit,我正在处理一个项目,当单击submit按钮时,我捕获事件并通过外部服务运行表单以检查某些内容是否有效 如果有问题,我弹出一个对话框,告诉用户有问题,并给他们覆盖选项继续 问题是如何触发表单提交。如果我只使用.submit,它会再次将表单发送到对话框中 $('#editAddr').submit(function(){ var checkString = addrString(); $.getJSON('/validate.php' + checkString, function(
$('#editAddr').submit(function(){
var checkString = addrString();
$.getJSON('/validate.php' + checkString, function(data){
if(data == 0){
var confw = '';
confw += '<div><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>';
confw += 'Failed validation.</p></div>';
var $dialog = $(confw).dialog({
title: "Validation Problem",
modal: true, resizable: false, width: 500,
buttons: {
"Edit": function(){
$(this).dialog('close');
},
"Override": function(){
$(this).dialog('close');
$('#editAddr').submit();
}
}
});
}else{
$('#editAddr').submit();
}
});
return false;
});
如何通过单击对话框按钮正确提交此表单
编辑:确保表单中没有id=submit的按钮,否则会破坏jQuery。submit问题来自于您连接逻辑的方式 表单中的按钮应为常规按钮,而不是提交按钮 然后,它的onaction属性应该指向上面的方法 在此之后,form.submit应按预期工作
另一个选项是在方法上添加一个标志。问题来自于您连接逻辑的方式 表单中的按钮应为常规按钮,而不是提交按钮 然后,它的onaction属性应该指向上面的方法 在此之后,form.submit应按预期工作 另一个选项是在方法上添加标志。只需在表单的dom元素上调用.submit即可 我认为您可以从jQuery获得如下信息:
$('#editAddr')[0].submit(); // goes in your Override button logic
只需在表单的dom元素上调用.submit即可
我认为您可以从jQuery获得如下信息:
$('#editAddr')[0].submit(); // goes in your Override button logic
添加在submit函数开头选中的isOverride或isValid布尔值以绕过进一步处理。添加在submit函数开头选中的isOverride或isValid布尔值以绕过进一步处理。而不是绑定到表单的submit事件,改为绑定到submit按钮的click事件。通过这种方式,您可以捕获submit事件的click事件,并在需要时返回false,或者继续表单上的submit事件
$('input[type="submit"]').click(function(e){
e.preventDefault();
if() // invalid data
{
}
else // good to go
{
$('form').submit();
}
})
如果有人禁用JavaScript,这个解决方案也会很好地降级。我读过的其他一些解决方案不允许这样做。与其绑定到表单的提交事件,不如绑定到提交按钮的单击事件。通过这种方式,您可以捕获submit事件的click事件,并在需要时返回false,或者继续表单上的submit事件
$('input[type="submit"]').click(function(e){
e.preventDefault();
if() // invalid data
{
}
else // good to go
{
$('form').submit();
}
})
如果有人禁用JavaScript,这个解决方案也会很好地降级。我读过的其他一些解决方案不允许这样做。您的问题是,在Jquery对象上调用submit会再次通过Jquery onsubmit运行它。一旦您完成了验证程序,您只需要在DOM对象上调用它-您可以通过
document.GetElementById(editAddr).submit();
或与
$("#editAddr").get(0).submit();
至少,这是验证提交处理程序的工作方式。我假定它与标准提交处理程序的工作方式相同。您的问题是,在Jquery对象上调用submit会再次通过Jquery onsubmit运行它。一旦您完成了验证程序,您只需要在DOM对象上调用它-您可以通过
document.GetElementById(editAddr).submit();
或与
$("#editAddr").get(0).submit();
至少,这是验证提交处理程序的工作方式。我认为它与标准提交处理程序的工作方式相同。如果有人禁用JavaScript,没有提交按钮将使表单变得无用。同样的经验观点:如果有人关闭internet,浏览器将无用。如果有人关闭Cookie,浏览器将毫无用处。如果有人禁用JavaScript,没有提交按钮将使表单毫无用处。同样的经验观点:如果有人关闭互联网,浏览器将毫无用处。如果有人关闭Cookie,浏览器将毫无用处。这听起来像是固有的表单提交数据没有正确设置。试着注释jquerysubmit函数,看看submit按钮是否能自己工作。如果在没有重写和检查逻辑的情况下,这项功能不起作用,您将永远无法使用它。错误:对象的属性“submit”不是函数。由id为submit的按钮引起。这听起来像是固有的表单提交数据没有正确设置。试着注释jquerysubmit函数,看看submit按钮是否能自己工作。如果在没有重写和检查逻辑的情况下,这项功能不起作用,您将永远无法使用它。错误:对象的属性“submit”不是函数。由id为submit的按钮引起。请注意,您在最初的对话中从未提到过降级question@OlivierRefalo-你因为我的积极主动而责骂我?请注意,你在最初的谈话中从未提到过有辱人格question@OlivierRefalo-你因为我主动而责骂我?