2011-05-22 65 views
7

我希望能够在每次更改下拉列表的值时启动警报消息。我认为下面的代码应该可以工作,但它不是由于某种不明原因。任何想法为什么?帮助与下拉菜单上的jquery onchange事件

谢谢。

<html> 
<head> 
<script type="text/javascript" src="lib/jquery.js"></script> 
</head> 
<body> 

<script type="text/javascript"> 
    $("select").change(function(){ 
     alert(this.id); 
    }); 
</script> 


<select> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

</body> 
</html> 

回答

13

代码很好,你只是没有正确初始化它。

尝试....

$(document).ready(function() { 
    $("select").change(function(){ 
     alert(this.id); 
    }); 
}); 

看到的文档here

你的函数提醒select元素的id(你还没有分配给任何东西)。我假设你真的想从下拉列表中获得价值?在这种情况下,你想:

alert($(this).val()); 
3

当页面加载DOM准备好后,注册onchange处理程序。

$(function() { 

    $("select").change(function(event) { 
     alert(this.id); 
     // alert($(this).attr('id')); to get the id attr with jquery 
    }); 

}); 

我也建议针对带有ID的select元素。您的代码每次都会显示警告任何页面上的选择已更改。

+0

没有错与'this.id' 。 – SLaks 2011-05-22 21:42:34

+0

@SLaks:没错,我已经修改以清楚说明。 – 2011-05-22 21:43:39

+0

对于我自己的启示,倒票是什么? – 2011-05-22 21:54:25

0
$(document).ready(function(){ 
$("#projectsName").change(function(){ 
     alert("HI"); 
}); 

});

请注意,项目名称是下拉 的ID和存在具有相同名称没有其他ID 其他明智的jQuery将无法正常工作 还仔细检查您的jQuery插件