2011-05-22 66 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插件