使'enter'键从输入类型=“文本”运行一个函数

时间:2013-03-15 20:35:29

标签: javascript html

所以,我在这里遇到一个小问题。

我有一个文本字段(不是区域),我想按Enter键时运行JS函数。这不是单独的“提交”按钮。 现在我正在尝试使用'onKeyPress'事件,但每次输入一个字母时都会运行该函数。所以如果我想写'LIKE',它会发布'L'然后'LI'然后'LIK'然后'喜欢'。每当我按下任何东西时,它都会做出反应,而不仅仅是当我进入时。

我没有表单,只是一个简单的输入类型=“text”:

<input type="text" id="' + post_id + '" onKeyPress="fbComment(\''+post_id+'\')"> Post a comment </input>

如果你们中的一些人还记得我的上一个问题,那么这将是我的facebook_footer变量的一部分(我正在尝试FB API),完成的事情看起来像这样:

var facebook_footer = '<button onClick="fbLike(\''+post_id+'\')"> Like </button> <input type="text" id="' + post_id + '" onKeyPress="fbComment(\''+post_id+'\')"> Post a comment </input>';

你们中的任何人都知道我能做些什么来使这项工作吗?

4 个答案:

答案 0 :(得分:3)

这是一个简单的功能 -

textElement.onkeydown=function(e){
    if(e.keyCode==13){
        alert('you press enter')
    }
}

答案 1 :(得分:2)

您可以在输入中检测回车键:

$("#inputIDHERE").keypress(function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

答案 2 :(得分:0)

当然,你可以这样做 - 你只需要在你的javascript中加入一些额外的逻辑。

查看Keyboard Events Tutorial

您只需查看按键事件即可查看输入的密钥。事件对象具有键码或具有与按下的键对应的值的属性,键码13是输入/返回按钮。

其他参考:Javascript Character Codes

答案 3 :(得分:0)

这对我有用:

$("#inputIDHERE").bind('keypress', function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

我还添加了&lt; form&gt;&lt; / form&gt;在我的输入标签周围,虽然这可能没有必要。