0

私は3つの選択ボックスを持っています

$("select#selectbox1").val(data.Ref_box1_ID.toString()).trigger('change');
$("select#selectbox2").val(data.Ref_box2_ID.toString()).trigger('change');
$("select#selectbox3").val(data.Ref_box3_ID.toString()).trigger('change');

問題があります。変更イベント内に、次の選択ボックス内にオプションをロードするコードがありますが、最初にオプションを正しく選択してから、次の選択ボックスで変更イベントロードオプションをトリガーするコードのみが機能するようです。しかし、2番目のselectは、「select a option ...」という最初のオプションのみを表示し、3番目のselectは何もロードせず、オプションも選択しません。

このコードで見逃した可能性があることは何ですか?...更新するために.blur()も配置しようとしましたが、効果はなく、.trigger()の前にイベントattrib('selected'、'selected')を追加しませんでした...

どんな方向でもいただければ幸いです。

4

1 に答える 1

0

これをチェックして

<select id="selectbox1" />
    <option value="11"> 11</option>
    <option value="12"> 12</option>
    <option value="13"> 13</option>
</select>

<select id="selectbox2" />
    <option value="21"> 21</option>
    <option value="22"> 22</option>
    <option value="23"> 23</option>
</select>
<select id="selectbox3" />
    <option value="31"> 31</option>
    <option value="32"> 32</option>
    <option value="33"> 33</option>
</select>

$(function() {
    $('#selectbox1 , #selectbox2, #selectbox3').on('change', function() {

        var val = $(this).find('option:selected').val();

        alert('Value of ' + $(this).attr('id') + ' is : ' + val);
    });

    $("#selectbox1").val('12').trigger('change');
    $("#selectbox2").val('23').trigger('change');
    $("#selectbox3").val('32').trigger('change');

});​

イベントを定義した後、またはその前にイベントをトリガーしましたか..後で行われた場合、イベントはトリガーされるためにまだ利用できません...

フィドルをチェック

于 2012-09-21T15:23:15.257 に答える