InitSelection在Select2 4.0.3 js中不起作用

时间:2017-02-09 13:11:33

标签: javascript jquery select2 jquery-select2-4 ui-select2

我正在使用select2,正常工作正常,但默认选择不起作用,

我正在使用select2 4.0.3 js

我正在使用initSelection,但它的显示就像这个截图

enter image description here

       $.ajax({
            type: "GET",
            async: true,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url:  "url",
            data: { id: usId }   
        }).done(function (e) {
        var obj = arguments;
        return obj;
    });
你可以帮我解决这个问题吗?

感谢

3 个答案:

答案 0 :(得分:2)

您必须触发选定的值

var selected = [{id: "20"}]; 
var data = <?php echo $cat_json; ?>;
function templateResult(node) {
    var $result = $('<span style="padding-left:' + (20 * node.level) + 'px;">' + node.text + '</span>');
    return $result;
}
;
function formatSelection(node) {
    return node.sel_text;
}
;
$("#mySelect").select2({
    placeholder: 'Select an option',
    width: "600px",
    tags: true,
    data: data,
    templateSelection: formatSelection,
    templateResult: templateResult,
});
$('#mySelect').val(selected).trigger('change');

我希望这段代码能够运作。

答案 1 :(得分:0)

经过多次测试后,对于4.0.3版本,此技巧起作用了

initSelection: function (element, callback)
        {
            var id = $(element).val();
            if (id !== "" && id !== 0)
            {
                $.ajax(url,
                        {
                            data: {q: id},
                            dataType: "json"
                        }).done(function (data)
                {
                    $.each(data, function (i, value)
                    {                      
                        input.append('<option value='+value[0].id+' selected>'+value[0].text+'</option>');                    
                        callback({id: value[0].id,text: value[0].text});
                    });
                    ;
                });
            }
        }

答案 2 :(得分:0)

这对我来说很好..:)

initSelection: function (element, callback)
            {
                var id = $(element).val();
                if (id !== "" && id !== 0)
                {
                    $.ajax("/visits/exam/findings/selected?visit_id=" + $('#visit_id').val(),
                        {
                            data: {q: id},
                            dataType: "json"
                        }).done(function (data)
                    {
                        $.each(data, function (i, value)
                        {
                            $("#basic_exam_findings").append('<option value='+value['id']+' selected>'+value['text']+'</option>');
                            callback({id: value['id'],text: value['text']});
                        });
                        ;
                    });
                }
            }