在所有浏览器中使用回车键调用函数

时间:2014-07-31 16:00:11

标签: javascript

我一直在努力让enter键调用特定文本字段的函数。让它与IE一起工作是没有问题的。 Chrome和Firefox是另一个故事,它们触发了另一个功能。文本框中的代码是:

<input name="Phone" type="text" onkeydown="if (event.keyCode==13 || event.keyDown==13 || event.charCode==13){get2();preventDefault();}">

调用函数的代码是:

<script type="text/javascript">
$(function() {
  $(".button").on("click",function(e) {
    e.preventDefault();
    location=this.id+".php?"+$('form[name="reportform"]').serialize();
  });     
});
</script>

我尝试将该功能修改为:

<script type="text/javascript">
$(function() {
  $(".button").on("click",function(e) {
    if (event.keyCode==13 || event.keyDown==13 || event.which==13){get2();e.preventDefault();
    }else{
    e.preventDefault();
    location=this.id+".php?"+$('form[name="reportform"]').serialize();}
  });     
});
</script>

我甚至尝试将该功能换成:

<script type="text/javascript">
$('#reportform').submit(function(e){
        get2();
        e.preventDefault();
        return false;
});
</script>

我发现(keyCode,keyDown,charCode)== 13虽然谷歌搜索和本网站上的大部分功能都很多,但我还是无法让它发挥作用。任何见解都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我尝试过类似的方法来描述任务,但我找到了一种更好的方法来处理它。只需使用表单(如果需要,隐藏提交按钮)。

<form onsubmit="myFunction();return false;">
    <input type="text">
    <input type="submit" style="display:none">
</form>

[Enter]键将导致提交表单,即您要调用的函数。

JSFiddle example