0

formタグが2つ付いています。2 番目のオプションは、Ajax リクエストを作成することによって、最初のオプションで行った選択に応じてオプションを事前設定します。

返されたデータの例をローカル変数に渡すと、データは完全に返され、実際には2番目に事前入力formされます(コメント行を参照)。

私はJavaScriptに非常に慣れていないため、何かアドバイスをいただければ幸いです。次のコードを使用しています。

$(document).ready(function() {
    $('#table').change(function() {
        $.getJSON("/ajax_get", {
            id : $(this).val(),
            ajax : 'true'
        }, function(data) {
            /*
            var data = [
                { 
                    "optionValue":"actor_id", 
                    "optionDisplay": "actor_id"
                },
                {
                    "optionValue":"film_id", 
                    "optionDisplay": "film_id"
                },
                {
                    "optionValue":"priority", 
                    "optionDisplay": "priority"
                }
            ];
            */
            var $persons = $('#fields').empty();
            $.each(data, function() {
                $persons.append("<option value=" + this.optionValue + ">" + this.optionDisplay + "</option>");
            });
        });
    });
});
4

2 に答える 2

0

jQueryを使用しているので、次のようthisにする必要があります$(this)

$.each(data, function() {
    $persons.append("<option value=" + $(this).optionValue + ">" + $(this).optionDisplay + "</option>");
});
于 2012-08-02T19:54:32.490 に答える
0

JSON構文を完全に確認することについて、私は貴重な教訓を学びませんでした.返されたデータに余分なコンマが含まれてしまい(ループでデータを操作したことが原因で)、無効なJSON応答になりました.JQueryフォーム オプションのループと配置は問題ありませんでしたが、無効な JSON データが原因で、スクリプトはサイレントに失敗しました。アドバイスをくださった方々、ありがとうございます。乾杯。

于 2012-08-03T07:43:48.763 に答える