Jquery 防止一个表单提交,另一个表单提交-这种方法可靠吗?
在一个表单的提交事件处理程序中,提交另一个表单并返回Jquery 防止一个表单提交,另一个表单提交-这种方法可靠吗?,jquery,forms,submit,form-submit,Jquery,Forms,Submit,Form Submit,在一个表单的提交事件处理程序中,提交另一个表单并返回false以防止提交第一个表单是否安全 $("#form1").submit(function() { $("#form2").submit(); return false; }); 我正在使用这种方法,并且它是有效的(至少在IE6中)。但是,我担心这在其他浏览器中可能不起作用。调用submit是否可以以某种方式取消returnfalse 我考虑的另一种方法是 $("#form1").submit(function() {
false
以防止提交第一个表单是否安全
$("#form1").submit(function() {
$("#form2").submit();
return false;
});
我正在使用这种方法,并且它是有效的(至少在IE6中)。但是,我担心这在其他浏览器中可能不起作用。调用submit
是否可以以某种方式取消returnfalse
我考虑的另一种方法是
$("#form1").submit(function() {
setTimeout('$("#form2").submit();', 10);
return false;
});
……但这可能会增加实际不需要的复杂性
需要这样做的原因是用户正在提交
form1
,但在特定场景中(我可以使用JavaScript检测到),这会导致错误,这可以通过在form2
的一个字段中设置一些数据,然后提交此表单来解决。您最初的方法应该适用于所有浏览器。您的代码应该适用于所有浏览器,但如果您想绝对确定您可以这样做
$("#form1").submit(function(evt) {
evt.preventDefault(); // cancel the default behavior
$("#form2").submit();
return false;
});
使用该方法可确保在执行可能会干扰默认行为的操作之前取消默认行为 如果禁用了Javascript怎么办?如果禁用了Javascript,则用户无论如何都不能使用此网站。
返回false
导致jQuery执行.preventDefault()
部分。@elvasive,我知道。但是OP担心,如果在返回false
之前发生的提交可能会以某种方式干扰这一点。这是不可能的,但我只是指出了一个可以缓解这种担忧的替代方案(我希望)