Javascript “提交事件”中的“单击事件”在chrome 47中不起作用

Javascript “提交事件”中的“单击事件”在chrome 47中不起作用,javascript,jquery,forms,google-chrome,submit,Javascript,Jquery,Forms,Google Chrome,Submit,我试图阻止使用此代码的页面上的提交事件,以便如果我按enter键,它将单击验证元素 $(document).ready(function(){ $("form").submit(function(event){ event.preventDefault(); document.getElementById("validate").click();//alert("Something") works fine here }); }); 但是,当我按下enter键,将焦点放在任何文本字段上时

我试图阻止使用此代码的页面上的提交事件,以便如果我按enter键,它将单击
验证
元素

$(document).ready(function(){
$("form").submit(function(event){
 event.preventDefault();
 document.getElementById("validate").click();//alert("Something") works fine here
 });
});
但是,当我按下enter键,将焦点放在任何文本字段上时,它会提交带有表单指定操作的表单。这并不能阻止google chrome 47中预期的
Submit
事件。如果我将放置任何
警报
而不是
document.getElementById(“验证”)。单击()然后它工作正常。下面是该页面的html代码

<td align="center" width="100%">
<input type="button" value=" Next " id="validate" tabindex="4">
<a id="Proceed" href="#" onclick="mojarra.jsfcljs(document.getElementById('form'),{'Form:Proceed':'Form:Proceed'},'');return false"></a>
<input id="replan" type="submit" name="replan" value="Replan" tabindex="4">
</td>

那么,有人能解释一下为什么这在新版本的chrome中不起作用吗


注意:id
validate
的事件是使用
addEventListener()

分配的。在类似的情况下,我使用了稍微不同的方法,我在文本框上按下了键,并执行了preventDefault以防止表单被提交

$(document).ready(function(){
    $("input[type='text']").keydown(function(evtObj){
         var code = (e.keyCode ? e.keyCode : e.which);
         if (code==13) {
            e.preventDefault();
        }
    });
});

请参阅此关于钥匙夹持的讨论

如果是由于
按键按下事件造成的,那么如果我将该行替换为任何其他代码,即
alert()
,则说明它工作的原因。即使我按下了
Enter
键,它也没有提交表单。我想我还是有点被你想要完成的事情弄糊涂了。您只是想在提交前验证吗?如果是,请在函数中执行验证。如果有效,则返回true。如果无效,请执行e.preventDefault并返回false。