首页 文章

以编程方式将所选选项添加到Select2中

提问于
浏览
1

我有一个选择select2使用ajax搜索来查找结果 . 我已经像这样初始化它:

Task.ConfigureAssignee = function (objId) {

    var sectionID = (Utilities.GetQueryStringParams('subsection') != undefined) ? Utilities.GetQueryStringParams('subsection') : "-1";

    $(objId).select2({
        placeholder: 'Type names of people...',
        minimumInputLength: 3,
        multiple: false,
        width: '520px',
        id: function (obj) {
            return obj.ID;
        },
        ajax: { 
            type: "POST",
            datatype: 'json',
            url: "/webservices/globalwebservice.asmx/EventInviteSearch",
            data: function (term) {
                return JSON.stringify({ q: term, sectionId: sectionID });
            },
            contentType: 'application/json; charset=utf-8',
            results: function (data, page) { 
                return { results: data.d.SearchResults };
            }
        },
        formatResult: Task.FormatPersonSearchResult,
        formatSelection: Task.PersonForSelection
    })
}

我想做的是点击一下按钮,通过javascript将一个新项目添加到选择中 .

我已经从文档中查看了 $("#ddlinput").select2("val", "CA"); ,但是这需要将项目绑定到select2 .

任何帮助都会很棒 .


我想我可能需要设置输入的值并使用initSelection函数重新创建select2 . 我试过这个,然而它不起作用 . 没有错误,但没有任何反应 .

3 回答

  • 0

    我正在使用AJAX提供用户可以单击并添加到选择框的建议 .

    我经历了很多痛苦,最终我得到了这个(这是建议点击处理程序,即选项文本和值来自现实世界中的AJAX) .

    var select = $('#myselect');
    var option = $('<option></option>').
         attr('selected', true).
         text("An Option").
         val(42);
    /* insert the option (which is already 'selected'!) into the select */
    option.appendTo(select);
    /* Let select2 do whatever it likes with this */
    select.trigger('change');
    

    似乎可以做到这一点 .

  • 12

    您可以使用append()在单击按钮后在选择中添加项目

    $('.submitClass').click(function(){
    
    $('#selectId').append('<option selected="selected" value="val1">CA</option>');
    
    });
    
  • 2

    由于select2是空的(因为它的远程数据)我这样做:清除项目,附加值,选择和触发更改...

    $(dd).empty().append('<option value="'+ selectedValue +'">'+ selectedValue +'</option>').val(selectedValue ).trigger('change');
    

相关问题