2012-08-16 37 views
5

Tôi đang cố gắng lấy giá trị của một menu thả xuống khi thay đổi (và sau đó thay đổi giá trị trong menu thả xuống thứ hai).jQuery nhận giá trị thả xuống đã chọn khi thay đổi

EDIT: Cảm ơn tất cả các câu trả lời, tôi đã cập nhật thêm() nhưng mã được trở về không có gì, không null hoặc không xác định chỉ là một cửa sổ cảnh báo trống

Tuy nhiên khi tôi cảnh báo nó ra attr (giá trị) là không xác định.

Bất kỳ ý tưởng nào về những gì tôi bị thiếu?

Đây là mã của tôi:

<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 là phần tử được chọn? – fliim

+0

bạn quên '()' trong '$ (this) .val()' –

Trả lời

11

val là một phương pháp, không phải là một tài sản.

sử dụng nó như val()

Nếu bạn đang sử dụng nó nhiều nơi, tôi sẽ gán nó vào một biến địa phương và sử dụng nó sau đó.

Bạn cũng có thể sử dụng chức năng $.now() để nhận dấu thời gian độc đáo. Nó bằng 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

Bạn phải có giá trị sử dụng một phương pháp, không phải là một tài sản. Sử dụng điều này:

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

Cảm ơn vì điều này, nó bây giờ không trả về gì, không được xác định, tuy nhiên không có gì được trả về – TMB87

+0

@TomBeech - Điều đó nghe như một vấn đề HTML. Bạn có thể hiển thị HTML cho trình đơn thả xuống của mình không? – jeff

1

Thêm dấu ngoặc tròn để val của bạn: alert($(this).val())

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

    // OR 

    var val = this.value; 
}) 
0

Bạn cũng có thể có được tùy chỉnh thuộc tính từ menu thả xuống như dưới đây;

 $('.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> 
Các vấn đề liên quan