Ajaxでselect2コントロールをセットアップしました(単一と複数の両方があります)。ページの読み込みにいくつかの値を設定しようとしていますが、これを機能させることができません。select2 の私のコードを以下に示します。
function AjaxCombo(element, url, multival ){ // multival = true or false
multival = multival || false;
$(element).select2({
minimumInputLength: 2,
multiple: multival,
separator: '|',
ajax: {
url: url,
dataType: 'json',
data: function (term, page) {
var targetname = $(this).attr('name');
var target = targetname.slice(targetname.indexOf("[")+1, targetname.indexOf("]"));
return {
targettype: "search",
target: target,
search: term
};
},
results: function (data, page) {
return { results: data };
}
}
});
}
AjaxCombo(".ajaxselect", "includes/linkedcontrol.php", false);
AjaxCombo(".ajaxmultiselect", "includes/linkedcontrol.php", true);
Ajax コンボは正常に動作しますが、初期値のロードのみに問題があります。以下のコードを試しましたが、動作しませんでした:
initSelection : function (element, callback) {
var elementText = $(element).attr('data-initvalue');
callback(elementText);
}
PHP からの私の HTML は次のように返されます。
<input name='header[country]' class='ajaxselect' data-initvalue='[{"id":"IN","name":"India"}]' data-placeholder='Select Country' value='' />
値がphpから入力されていることがわかります.jqueryだけに問題があります。コントロール内の私の値は として表示されUS | United States of America
ます。formatオプションを使用せずに、このフォーマットをデフォルトとして取得するためにselect2ソースを編集したと思います。
デフォルト値を入力するのを手伝ってくれる人はいますか? 前もって感謝します。
編集:この質問は Select2 バージョン <4.0 に関するものです。このオプションは v4.0 から削除され、よりシンプルになりました。