2012-08-16 102 views
5

我試圖獲取更改上的下拉列表的值(然後更改第二個下拉列表中的值)。jQuery獲取更改時選擇的下拉值

編輯:感謝所有的答覆,我已經更新添加的(),但是當我提醒它的代碼返回什麼,而不是null或undefined只是一個空白警告窗口

然而attr(值)未定義。

關於我失蹤的任何想法?

這裏是我的代碼:

<script type="text/javascript"> 
      $(document).ready(function() { 

       var roomID = "0" 
       $('.dropone').load('ajaxdropdown.aspx'); 
       $('.droptwo').load('ajaxdropdown.aspx?drpType=room&roomid=' + roomID); 

       $('.dropone').change(function() { 
       var ts = new Date().getTime(); 
       alert($(this).val) 

        $(".droptwo").empty(); 
        $(".droptwo").load("ajaxdropdown.aspx?drpType=room&roomid=" + $(this).attr("value") + "&ts=" + ts); 
       }); 

      });   
     </script> 
+0

.dropone是一個select元素嗎? – fliim 2012-08-16 15:57:55

+0

你忘了$(this).val()''中的'()'' – 2012-08-16 16:10:27

回答

11

val是一種方法,而不是一個屬性。

使用它像val()

如果您使用它很多地方,我將其分配到一個局部變量,然後使用它。

您也可以使用$.now()函數來獲取唯一的時間戳。它等於DategetTime();

$('.dropone').change(function() {  
    var item=$(this); 
    alert(item.val()) 
    $(".droptwo").empty(); 
    $(".droptwo").load("ajaxdropdown.aspx?drpType=room 
         &roomid=" +item.attr("value") + "&ts=" + $.now()); 
}); 
3

您必須獲得使用的方法,而不是一個屬性的值。使用此:

alert($(this).val()) 
+0

感謝你們,現在它不返回任何內容,沒有任何返回 – TMB87 2012-08-16 15:53:19

+0

@TomBeech - 聽起來像一個HTML問題。你能爲你的下拉菜單顯示HTML嗎? – jeff 2012-08-16 15:58:29

1

添加輪支架安裝到您VAL:alert($(this).val())

9
$('.dropone').change(function() { 
    var val = $(this).val(); 

    // OR 

    var val = this.value; 
}) 
0

您也可以獲取自定義從下面的下拉屬性;

 $('.someclass').change (function() { 
       var val = this.value; 
       alert(val);          //selected value 

       var element = $(this).find('option:selected'); // assign selected element 
       var myTag = element.attr("aTag");    // get attribute by name 
       alert(myTag); 
    }); 


<option name='somename' id='someid' aTag='123' value='XYZ'>XYZ</option>