JavaScript onsubmit-preventDefault无条件工作

JavaScript onsubmit-preventDefault无条件工作,javascript,onsubmit,Javascript,Onsubmit,如果我将e.preventDefault()用于onsubmit中,则会阻止表单提交。但是如果我有条件地使用它,它就不起作用了。见以下代码: var register=document.getElementById('registerForm'); register.onsubmit=函数(e){ e、 preventDefault();//它正在工作 } register.onsubmit=函数(e){ 如果(5==5){ e、 preventDefault();//它不工作 } } 该代码

如果我将
e.preventDefault()
用于
onsubmit
中,则会阻止表单提交。但是如果我有条件地使用它,它就不起作用了。见以下代码:

var register=document.getElementById('registerForm');
register.onsubmit=函数(e){
e、 preventDefault();//它正在工作
}
register.onsubmit=函数(e){
如果(5==5){
e、 preventDefault();//它不工作
}
}

该代码工作正常。但是,其他一些事件不允许它运行。也可能是一些控制台错误。但是,如果你想打破流程,你也可以这样做:

register.onsubmit = function (e) {
  if (5 == 5) {
    return false;
  }
}

但请记住,执行此操作后,上面的代码将中断附加到特定事件的所有其他指令。

尝试此操作。我在Nette框架中使用了它,它很有效。但是你必须创建“假按钮”并隐藏真正的提交按钮。 HTML:


如果您认为这些行中有奇怪的地方,为什么不添加断点进行调试呢? 或者将您怀疑的代码放在try-catch块中,看看是否调用了catch


因为5==5将始终为真,如果条件不起作用,这是不可能的。张贴你的实际代码。
<form method="post" id="registerForm">
    <input type="button" id="fakeSubmitButton" />
    <input type="submit" id="submit" style="visibility:hidden" />
<form>
fakeBtn.click(function(e) { //user clicks on the fake submit button
    if ( 5==5 ) {
        e.preventDefault();
    } else {
        register.submit(); //call submit on real submit button
    }
});