11

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

編集:すべての返信に感謝します。() を追加するように更新しましたが、コードは null または未定義ではなく、空のアラート ウィンドウだけを返します。

ただし、アラートを出すと、 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>
4

6 に答える 6

22

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());
});
于 2012-08-16T15:52:45.683 に答える
11
$('.dropone').change(function() {
  var val = $(this).val(); 

  // OR

  var val = this.value;
})
于 2012-08-16T15:53:29.880 に答える
4

プロパティではなく、メソッドを使用して値を取得する必要があります。これを使って:

alert($(this).val())
于 2012-08-16T15:52:01.830 に答える
1

val に丸括弧を追加します。alert($(this).val())

于 2012-08-16T15:52:04.233 に答える
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>
于 2017-08-02T13:43:45.680 に答える