在带有Ajax的Select2上设置加载时的初始值

我已经使用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。我想我已经编辑了select2源,以便在不使用format选项的情况下将此格式作为默认格式。

谁能帮我填充默认值吗?提前致谢。

此问题与Select2版本<4.0有关。此选项已从v4.0中删除,并且现在更加简单。

回答:

您指定为as的函数initSelection以初始valueas作为参数调用。因此,如果value为空,则不会调用该函数。

当您指定value='[{"id":"IN","name":"India"}]'而不是data-

initvalue函数时,将调用该函数,并且可以初始化选择。

以上是 在带有Ajax的Select2上设置加载时的初始值 的全部内容, 来源链接: utcz.com/qa/417207.html

回到顶部