Multiselect jQuery中的json源代码

Cha*_*Poz 6 jquery json multi-select

我有一个多选的jQuery,我想从json获取源代码.我从我的自动完成组合框中获取了可用的源代码,但在这里它不起作用.

我的代码:

 $(document).ready(function () {
        var warning = $("#message");
        $("select").multiselect({
            //selectedText: function (numChecked, numTotal, checkedItems) {
            //    return numChecked + ' of ' + numTotal + ' checked';
            //},
            source: function (request, response) {
                $.getJSON('http://' + $("[id$='ip']").val() + "/JSON/Auctocomplete.aspx?city=1&term=" + request.term, function (data) { response(data); });
            },
            select: function (event, ui) {
                $("#mfr").textContent = ui.item.id;
            },
            selectedList: 5,
            header: "choose up to 5",
            click: function (e) {
                if ($(this).multiselect("widget").find("input:checked").length > 5) {
                    warning.addClass("error").removeClass("success").html("choose up to 5");
                    return false;
                } else {
                    warning.addClass("success").removeClass("error").html("");
                }
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

Cha*_*mal 7

这是因为同源政策.你不能使用ajax来调用外部网站.如果你真的想使用,你必须使用JSONP.或者您可以使用服务器端代理.意味着,在服务器端调用外部站点并对该Web服务执行ajax调用.

有关更多信息,请参阅此链接


ser*_*lge 3

我搜索了一下,我认为Jquery 多选没有源属性。看看http://www.erichynds.com/blog/jquery-ui-multiselect-widget。您确定它有源属性吗?

我建议你,首先从 json 加载 select,然后将其转换为 multiselect。

// The empty select element:
<select></select>

// In javascript:
$(document).ready(function () {
     var url = 'http://...';

     $.getJSON(url,function(result){
               $.each(result, function(i, field){
                      var option = $('<option value="' + field.value + '">' + field.text + '</option>');
                      $('select').append(option);
               });

               $('select').multiselect({...});
     });
});
Run Code Online (Sandbox Code Playgroud)