Javascript “提交事件”中的“单击事件”在chrome 47中不起作用
我试图阻止使用此代码的页面上的提交事件,以便如果我按enter键,它将单击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键,将焦点放在任何文本字段上时
验证
元素
$(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中不起作用吗
注意:idvalidate
的事件是使用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。