我正在使用jquery和multi select2标记工具编写WebForm。用户从下拉列表中选择多个代理,保存,并将数据作为单个字符串存储到后端SQL数据库,采用以下管道分隔格式:[AGENCY1 | AGENCY2 | AGENCY3]。
<input id="ddlAgency" type="hidden" class="form-control" value="" name="select2tag"/>
当表单加载时,我能够解析标签,但是如何让它们在select2多重表单控件中显示为选中(即:AGENECY1,AGENECY2,AGENECY3显示为选定的标签,而其余部分可以在下拉列表中选择选项吗?
var agencySplit = row.INC_AGENCY.split("|");
for (var i = 0; i < agencySplit.length; i++) {
$('#ddlAgency').val(agencySplit[i]); //This Doesn't Work Like I Want It To
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
您需要将分割中的项目option
附加到select
元素。
<select id="ddlAgency" style="width:300px" type="hidden" class="form-control" name="select2tag"/>
$('select').select2();
var agency = "AGENCY1|AGENCY2|AGENCY3";
var agencySplit = agency.split("|");
for (var i = 0; i < agencySplit.length; i++) {
$('#ddlAgency').append("<option>" + agencySplit[i] + "</option>");
}
如果进行多选:
$('select').select2({multiple: true});
http://jsfiddle.net/c1ozynyu/1/
更新:(根据预先选择列表中项目的评论)
<select id="ddlAgency" style="width:300px" type="hidden" class="form-control" name="select2tag">
<option val="AGENCY1">AGENCY1</option>
<option val="AGENCY2">AGENCY2</option>
<option val="AGENCY3">AGENCY3</option>
<option val="AGENCY4">AGENCY4</option>
<option val="AGENCY5">AGENCY5</option>
</select>
var array = new Array();
var agency = "AGENCY1|AGENCY2|AGENCY3";
var agencySplit = agency.split("|");
for (var i = 0; i < agencySplit.length; i++) {
array.push(agencySplit[i]);
}
$('select').select2({multiple: true}).select2('val', array);