javascript - javascript如何设置 jquery select2的选择值?

  显示原文与译文双语对照的内容
56 4

这属于select2版本 4之前的代码

我有一个简单的select2 代码,可以从ajax获取数据

$("#programid").select2({
 placeholder:"Select a Program",
 allowClear: true,
 minimumInputLength: 3,
 ajax: {
 url:"ajax.php",
 dataType: 'json',
 quietMillis: 200,
 data: function (term, page) {
 return {
 term: term,//search term
 flag: 'selectprogram',
 page: page//page number
 };
 },
 results: function (data) {
 return {results: data};
 }
 },
 dropdownCssClass:"bigdrop",
 escapeMarkup: function (m) { return m; }
});

但是,该代码正在工作,我需要在编辑模式下设置一个值。当用户首次选择值时,需要编辑该值时,必须出现在同一选择菜单( select2 ) 中。

更新:

HTML代码:

<input type="hidden" name="programid" id="programid" class="width-500 validate[required]">

Select2编程访问插件与这里不兼容。

时间:原作者:0个回答

138 1

若要动态设置Select2组件的"选定"值,请执行下列操作:

$('#inputID').select2('data', {id: 100, a_key: 'Lorem Ipsum'});

第二个参数是具有预期值的对象。

更新:

这确实有效,只是要注意,在新的select2中,标准select2对象中英镑 is英镑。所以:{id: 100, text: 'Lorem Ipsum'}

示例:

$('#all_contacts').select2('data', {id: '123', text: 'res_data.primary_email'});

感谢 @NoobishPro

原作者:
106 3
SELECT2 <V4

步骤 #1: HTML

<input name="mySelect2" type="hidden" id="mySelect2">

步骤 #2: 创建一个Select2实例

$("#mySelect2").select2({
 placeholder:"My Select 2",
 multiple: false,
 minimumInputLength: 1,
 ajax: {
 url:"/elements/all",
 dataType: 'json',
 quietMillis: 250,
 data: function(term, page) {
 return {
 q: term,
 };
 },
 results: function(data, page) {
 return {results: data};
 },
 cache: true
 },
 formatResult: function(element){
 return element.text + ' (' + element.id + ')';
 },
 formatSelection: function(element){
 return element.text + ' (' + element.id + ')';
 },
 escapeMarkup: function(m) {
 return m;
 }
});

步骤 #3: 设置所需的值。

$("#mySelect2").select2('data', { id:"elementID", text:"Hello!"});

如果你使用不带 AJAX的 select2,你可以执行以下操作:

<select name="mySelect2" id="mySelect2">
 <option value="0">One</option>
 <option value="1">Two</option>
 <option value="2">Three</option>
</select>
/*////////////"One" will be the selected option */
$('[name=mySelect2]').val("0");

你也可以这样做:

$("#mySelect2").select2("val","0");
SELECT2 V4

你可以直接附加一个选项/s,以英镑为代价,如下面所示:

<select id="myMultipleSelect2" multiple="" name="myMultipleSelect2[]">
 <option value="TheID" selected="selected">The text</option> 
</select>

或者使用 jquery:

var $newOption = $("<option></option>").val("TheID").text("The text")
$("#myMultipleSelect2").append($newOption).trigger('change');

其他示例

$("select123455").val(5).trigger('change');
原作者:
...