.val()给我未定义?

时间:2015-03-24 19:00:03

标签: javascript jquery html undefined

当我按下回车键时,我试图将任何写入输入字段的文本显示在弹出窗口中,但它总是显示未定义的。 (弹出窗口说"测试blah blah undefined")。我已经盯着这几天寻找解决方案,但我无法弄清楚!

是因为我为keydown选择了错误的对象吗?是否存在语法错误,我只是没有捕获?谢谢!



<!DOCTYPE html>
<html>
<head>
<title>Test jQuery Thing</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
	$("#document").ready(function() {
		$(document).keydown(function(e){
			//enter key pressed
			if (e.keyCode == 13){
				alert("test blah blah " + $("#testField").val());
			};
		});
	}); // end of ready function
</script>

</head>

<body>
<section class="stuff">
	<input type="text" class="testField">
</section>
</body>

</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:6)

jQuery使用标准的css选择器,因此$("#testField")查找id为“testField”的元素。所以你的输入应该是id="testField"

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

要搜索“class”为“testField”的元素,请使用此$(".testField")

答案 1 :(得分:1)

您的输入有class testField,而不是id;将#更改为.

alert("test blah blah " + $(".testField").val());

答案 2 :(得分:0)

您尝试使用“id”选择器而不是“class”选择器来选择元素。正确的方法是:

$(".testField").val()

同样,您也可以修复HTML:

<section class="stuff">
    <input type="text" class="test-field" id="testField">
</section>