我有多个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("");
}
}
});
});
答案 0 :(得分:7)
这是因为Same origin policy。你不能使用ajax来调用外部网站。如果你真的想使用,你必须使用JSONP。或者您可以使用服务器端代理。意味着,在服务器端调用外部站点并对该Web服务进行ajax调用。
答案 1 :(得分:2)
我搜索过,我认为Jquery multiselect没有 source 属性。看看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({...});
});
});