2012-08-16 12 views
5

変更時にドロップダウンの値を取得しようとしています(2番目のドロップダウンで値を変更しています)。jQueryは変更時に選択したドロップダウン値を取得します

EDIT:すべての返信用おかげで、私は追加して更新しました()が、私はそれを警告する際にコードがnullまたはundefined

しかしちょうど空白の警告ウィンドウではない何も、返却されませんattr(value)は未定義です。

私は行方不明に関するアイデアはありますか?

<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は選択要素ですか? – fliim

+0

あなたは '$(this).val()'の '()'を忘れてしまいました –

答えて

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

+0

@TomBeech - ドロップダウンにHTMLを表示できますか? – jeff

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> 
関連する問題