【问题标题】:JQuery Select2 Tags On Form Load表单加载时的 JQuery Select2 标记
【发布时间】:2016-01-27 09:53:08
【问题描述】:

我正在使用 jquery 和 multi select2 标签工具编写一个 WebForm。用户从下拉列表中选择多个机构,保存,数据以单个字符串形式存储到后端 SQL 数据库,格式如下:[AGENCY1|A​​GENCY2|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
}

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript jquery jquery-select2


    【解决方案1】:

    您需要将拆分中的项目作为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>");  
    }
    

    http://jsfiddle.net/c1ozynyu/

    如果做多选:

    $('select').select2({multiple: true});
    

    http://jsfiddle.net/c1ozynyu/1/

    已更新:(基于 cmets 预先选择列表中的项目)

    <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); 
    

    http://jsfiddle.net/c1ozynyu/2/

    【讨论】:

    • 感谢您的快速回复。这很接近,但我想要的是在文本框中选择所有三个项目。下拉列表中可能还有其他机构(即:AGENCY4、AGENCY5、...),但是从数据库中选择的三个已经被选中。
    • 一切似乎都在 jFiddle 中工作。但是在我的应用程序中,我收到以下错误:当附加到 有什么想法吗?您的代码正式有效,因此我将其标记为正确,只是看看您是否有任何想法。
    • 话虽如此,我得到了错误,但如果我忽略该消息,它的行为与预期一样。感谢您的帮助!
    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2018-02-04
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多