我想让脚本在逗号分隔集的字符串中显示值列表中的每个项目。
离。 “一个,两个,三个,四个”
在自动完成下拉列表中,它应显示:
一个 二 三 4
但是,当前代码显示只有单个char的列表。应该有一种简单的方法来分割该列表并显示单词而不是char。我的javascript有点受限,如果有人可以为我解决,我会很感激。谢谢。我一直在搜索并知道你应该能够覆盖解析函数,但它必须比这更容易。此外,我使用Web服务返回字符串,可以由任何东西分隔,但它需要显示单词。
如果有人知道答案,我会很感激...谢谢
$("#CustomerID").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/customer/search.asmx/findvalue",
dataType: "json",
data: {
term: request.term
},
error: function(xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.responseText);
},
success: function(data) {
response($.map(data, function(item) {
return {
label: item,
value: item
}
}));
}
});
},
minLength: 2,
select: function(event, ui) {
alert('Select');
}
});
EDIT ----------------------
感谢上一张海报寻求帮助。
似乎是格式化的细微差别。
这有效:
success: function (data) {
response($.map(data, function (item) {
return item.split(",");
}));
},
使用它似乎只是出错或什么都不做:
success: function(data) {
response(data.split(","));
}
我甚至尝试了这一点,它会通过,但不会产生下拉菜单:
success: function (data) {
response($.map(data, function (item) {
response(item.split(","));
}));
},
以上似乎工作并显示我想要的东西,不确定它是否有效。如果有人想解释原因?不知道为什么在某些情况下你需要一个响应()和/或返回以使自动完成工作....
答案 0 :(得分:1)
尝试使用.split()
将字符串拆分为字符串数组(需要一个数组作为自动完成小部件的源代码)。
$("#CustomerID").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "/customer/search.asmx/findvalue",
dataType: "json",
data: {
term: request.term
},
error: function(xhr, textStatus, errorThrown) {
alert('Error: ' + xhr.responseText);
},
success: function(data) {
response(data.split(","));
}
});
},
minLength: 2,
select: function(event, ui) {
alert('Select');
}
});