如何解决在提交表单之前执行操作?
| 我有一个带有ID的HTML表单,并且已将此ID绑定到Submit函数。我想要的是,当用户单击“提交”时,会弹出一个弹出窗口,就像一个模式框,感谢他们。只有在他们单击屏幕或关闭模式框后,我才需要表单提交和刷新页面。 但是我现在拥有它的方式似乎无论如何都会刷新。我正在使用花式弹出插件的模式框。<form action=\"submit-comment.php\" method=\"post\" id=\"form\">
<input type=\"text\" name=\"comment\" />
<input type=\"submit\" name=\"submit\" value=\"Submit\" />
</form>
jQuery(\"#form\").submit(function() {
jQuery.fancybox(\'<div class=\"box\">Some content</div>\',{
\'onClosed\' : function() { return true; }
}
});
});
如您所见,我试图告诉它仅在关闭时返回true,但实际上并没有起作用。
有任何想法吗?
解决方法
尝试这个:
jQuery(\"#form\").submit(function(e) {
var self = this;
e.preventDefault();
jQuery.fancybox(\'<div class=\"box\">Some amazing wonderful content</div>\',{
\'onClosed\' : function() {
self.submit();
}
});
return false; //is superfluous,but I put it here as a fallback
});
javascript是异步的,因此您不能延迟return语句。
更新
为了使上面的代码起作用,请将您提交按钮的name
更改为其他内容,例如:
<input type=\"submit\" name=\"submit_me\" value=\"Submit\" />
,(在Neal的回答下回答Rick的问题:““还有其他方法吗?因为我无法直接访问此html””)
如果您由于某种原因需要提交按钮具有ID = \“ submit \”并且不能使用form.submit方法(因为它链接到\“ input [type = submit] #submit \”按钮),则可以执行此操作:
$(\'<form>\')[0].submit.call(form); //jQuery
//OR:
document.createElement(\'form\').submit.call(form); //pure HTML w/o any framework
即创建新的空表单并使用其Submit方法在您自己的表单范围内调用它
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。