我有这段代码:
<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>
我想在输入框内单击输入后出现一个消息框。
感谢。
答案 0 :(得分:2)
// DOM ready handler
$(function() {
$("#target").keypress(function(event) {
if ( event.which == 13 ) {
alert("Enter has been clicked.");
}
}); // missing ")"
});
还要记住顶部的doctype。
<!DOCTYPE html>
并删除结束输入标记。
<input type="text" id="target">
正如@David指出的那样,如果使用==
vs ===
进行相等比较,可能会有不同的结果。在这种情况下,它不会产生任何影响,但为了安全起见,通常使用===
是个好主意,并在需要特定类型强制时使用==
。
答案 1 :(得分:1)
您的代码在<input>
元素存在之前运行。您可以使用domready事件:
<script type="text/javascript">
$(function(){
$("#target").keypress(function(event) {
if ( event.which == 13 ) {
alert("Enter has been clicked.");
}
});
});
</script>
或者稍后将该脚本标记放在文件中,可能就在</body>
结束标记之前。
答案 2 :(得分:0)
请参阅:http://jsfiddle.net/M8y5J/
on()
to attach event handler $(function(){
$("#target").on("keypress", function(e){
if ( e.which === 13 ) {
alert("Enter has been clicked.");
}
});
});
<!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>