0

私はこれの壁に頭をぶつけてきました、そして誰かが助けてくれることを願っています。ajaxを使用して選択ボックスにデータを入力しています。これはできましたが、最初の値しか表示できないようです。データはjsonで送信されます。aDataをコンソールログに記録すると、複数の値が表示されますが、選択リストに含まれていません...何かアイデアはありますか?

$('.request-make').change(function () {
    var postVars = new Object();
    postVars.make = $('.request-make').val();

    $.ajax({
        type: 'POST',
        url: '/car_search/get_model',
        dataType: 'json',
        data: postVars,
        cache: false,
        success: function (aData) {
            //alert(aData)  
            //console.log(aData)
            //$('#request-model').val(response.data);
            $('#makebox').get(0).options.length = 0;
            $('#makebox').get(0).options[0] = new Option("--Select--", "0");

            $.each(aData, function (i, item) {
                $('#makebox').get(0).options[$('#makebox').get(0).options.length] = new Option(item[i].data, item[i].data);
            })
        }
    });
});
4

1 に答える 1

0

これは $.each 呼び出しの仕様です:

jQuery.each(コレクション、コールバック(indexInArray、valueOfElement))

そうは言っても、ここで何かがおかしいと思います:

new Option(item[i].data, item[i].data);

なぜなら、アイテムは毎回異なるアイテムになるからです。

みたいなことをしようとしていませんか?

new Option(item.data, item.data);

あるいは

new Option(aData[i].data, aData[i].data);
于 2013-03-12T22:32:43.653 に答える