提交事件中的Click事件在chrome 47中不起作用

时间:2015-12-13 16:47:35

标签: javascript jquery forms google-chrome submit

我正在尝试使用此代码阻止页面上的提交事件,这样如果我按Enter键,它将单击validate元素。

$(document).ready(function(){
$("form").submit(function(event){
 event.preventDefault();
 document.getElementById("validate").click();//alert("Something") works fine here
 });
});

但是,当我按下输入时,将焦点保持在任何文本字段上,它会提交表单并将操作分配给表单。它不会阻止谷歌浏览器47中预期的Submit事件。如果我要放置任何alert而不是document.getElementById("validate").click();然后它工作正常。这是该页面的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?(它在chrome 39中工作正常)

注意:标识validate的事件是使用addEventListener()分配的。

1 个答案:

答案 0 :(得分:0)

我在类似情况下略有不同,我抓住文本框上的keydown并执行preventDefault以防止提交表单。

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

请参阅有关密钥陷阱jQuery - keydown / keypress /keyup ENTERKEY detection?

的讨论