2

データがselect2Ajax によって読み込まれる ComboBox があります。入力値(サーバー側で設定されている)からselect2読み取り、プログラムで設定することにより、デフォルト値をに設定しようとしています。idselect2

initSelection()この問題を解決する方法で関数を実装する必要があると思います。

これが私のコードです:

HTML 入力は次のとおりです。

<input type="hidden" class="mySelect2" value="01" name="someName" />
値「01」がサーバーに設定されています  

JavaScript は次のとおりです。

$(".mySelect2").select2({
    ajax: {
        url:"data.php",
        dataType:"json",
        data:function(term, page) {
            return {
                query:term, page: page -1
            } ;
        },
        results:function(data, page) {
            return data  
        }
    }
});

これを試しましたが、うまくいきませんでした。

     $(".mySelect2").select2('val', '01');

initSelection()エラーが発生しました:「 が定義されていない場合、val() を呼び出すことはできません」

4

2 に答える 2

0

ajax を使用して select2 コントロールのデフォルト値を初期化するという一般的な前提は、次のようなものを使用して解決できます。

initSelection: function (element, callback) {
        var id = $(element).val();
        if (id !== "") {
        $.ajax("data.php", {
            data: {
                id: id // return a single item from your service
            },
            dataType: "json"
        }).done(function (data) {
            var results = [];
            $.each(data, function (index, item) {
                results.push({
                    id: item.Id, // whatever your id field is
                    text: item.TextValue // whatever your text field is
                });
            });
            callback(results[0]);
        });
    }
}

私は PHP の専門家ではありませんが、これは ajax リクエスト全体で標準である必要があります。このアプローチは基本的に、リストだけでなく単一の結果を返すことができることを前提としています。

于 2013-12-06T00:06:33.910 に答える