有人可以告诉我错误在哪里,我只是看不到它。 当选择更改时,'e1已更改'应记录到控制台。
HTML:
<select name="e1" id="e1">
<option value="1">1</option>
<option value="2">2</option>
</select>
JS:
$('#e1').change(function() {
console.log('e1 has changed');
});
jquery绝对有效,因为我已成功“获取”其他元素的服务器数据。
答案 0 :(得分:10)
此代码
$('#e1').change(function() {
console.log('e1 has changed');
});
可能不在您的文档就绪处理程序中,因此在您的dom元素e1
准备好之前运行。您可以创建一个文档就绪处理程序,它将在您的dom元素准备就绪时运行,如此
$(function() {
$('#e1').change(function() {
console.log('e1 has changed');
});
});
答案 1 :(得分:1)
适合我。这是jsFiddle代码 -
$(document).ready(function() {
$('#e1').change(function() {
alert('e1 has changed');
});
});
答案 2 :(得分:1)
我还没有这样做,你应该将代码包装在$(document).ready(
:
$(document).ready(function() {
$('#e1').change(function() {
console.log('e1 has changed');
});
});
答案 3 :(得分:0)
这对我有用:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function() {
$('#e1').change(function() {
console.log('e1 has changed');
});
});
</script>
</head>
<body>
<select name="e1" id="e1">
<option value="1">1</option>
<option value="2">2</option>
</select>
</body>
</html>
document.ready是其中的关键,正如其他人所指出的那样。
答案 4 :(得分:0)
对于选择菜单,当键盘和鼠标按钮事件和NoScript有效地选择了一个选项时,会发生更改事件。 对于文本字段或文本区域,当字段失去焦点时会发生更改事件。 因此你不能直接使用“改变事件”(没有通过键盘或鼠标选择任何选项) 试试这个鳕鱼:
<select name="subpos" id="subpos">
<option value="examplel">examplel</option>
<option value="sample">sample</option>
<option value="fortest">fortest</option>
</select>
<script>
$(function() {
$('#subpos').change(function() {
console.log('subpos has changed');
});
$("#subpos").val('sample');//combo box has change but dont appear in console log. why?
});
</script>
跑完后;看控制台日志
您无法在控制台日志中看到“subpos has changed”。但在行动'subpos已经改变'
发生了什么事?
当选择更改时,应将其记录到控制台。
现在,通过从下拉列表中选择该选项,您可以看到cosole日志已更改