2

我有这个代码:

<html>
    <title>a</title>
    <head>
        <script type="text/javascript" src="jquery-1.8.0.js"></script>
        <script type="text/javascript">
            $("#target").keypress(function(event) {
                if ( event.which == 13 ) {
                    alert("Enter has been clicked.");
                }
            }
        </script>
    </head>
<body>
    <input type="text" id="target"></input>
</body>
</html>

我希望在输入框中单击输入后出现一个消息框。

谢谢。

4

3 回答 3

2
  // DOM ready handler
$(function() {
    $("#target").keypress(function(event) {
        if ( event.which == 13 ) {
            alert("Enter has been clicked.");
        }
    }); // missing ")"
});

还要记住顶部的文档类型。

<!DOCTYPE html>

并删除结束输入标签。

<input type="text" id="target">

正如@David 指出的那样,如果您使用==vs===进行相等比较,可能会有不同的结果。在这种情况下,它不会有什么不同,但为了安全起见,通常使用 是一个好主意===,并==在需要特定类型强制时使用。

于 2012-09-03T19:55:56.513 回答
1

您的代码在<input>元素存在之前运行。您可以使用 domready 事件:

<script type="text/javascript">
$(function(){
  $("#target").keypress(function(event) {
    if ( event.which == 13 ) {
      alert("Enter has been clicked.");
    }
  });
});
</script>

或者只是将该脚本标记放在文件的后面,可能就在</body>结束标记之前。

于 2012-09-03T19:55:35.103 回答
0

见:http: //jsfiddle.net/M8y5J/

JavaScript

$(function(){
    $("#target").on("keypress", function(e){   
        if ( e.which === 13 ) {
            alert("Enter has been clicked.");
        }
    });
});

完整的 HTML

<!DOCTYPE html>
<html>
    <head>
        <title>Demo</title>
        <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.0.js'></script>
        <script type="text/javascript">
            $(function () {
                $("#target").on("keypress", function (e) {
                    if (e.which === 13) {
                        alert("Enter has been clicked.");
                    }
                });
            });
        </script>
    </head>
    <body>
        <input type="text" id="target" />
    </body>
</html>
于 2012-09-03T20:00:17.627 回答