我在使用自动填充小部件时遇到了一些问题。当您选择一个选项时,该项目的值将以换行符和一些空格为前缀。结果如何显示:自动填充小部件(jQuery UI) - 为什么换行?
Object { label="\n bedroom", value="\n bedroom"}
我不知道为什么会这样,也许这是我设置数组以获取值的方式?这里是我的代码:
$("#step2").show(0, function() {
/*tags auto-complete*/
var tags = $('span', $('#liTags')).text();
var availableTags = tags.split(' ;');
$(".liTagInput").autocomplete({
minLength: 2,
source: availableTags,
select: function(event, ui) {
var value = ui.item;
console.log(value);
console.log(jQuery.inArray(value, availableTags));
if(jQuery.inArray(value, availableTags) >= 0)
$(this).val('');
}
});
});
如果你想知道什么我想在这里做(我还没有测试,因为换行符的),我碰到一个span元素的标签上HTML端,然后将它们分成一个数组(availableTags
)。
然后我想要发生的是,一旦用户在文本框中键入内容,如果它不是他/她从自动完成菜单中选择的东西,那么应该清除文本字段的值(我也可能会告诉他们一个警告,告诉他们从菜单中选择,但现在让我们离开)。
有什么想法?
@ArtWorkAD:我正在考虑做类似的事情,但我仍然想知道换行符是从哪里来的。此外,我如何截取所选择的自动完成菜单选项的值来删除空格? – Kassem 2011-04-28 09:46:42
看起来你的“可用标签”有这些换行符。尝试做可用的日志标记以确定换行的原因。为什么在split(“;”)上有空格? – 2011-04-28 09:53:31
@ArtWorkAD:这是因为span元素中的标签由空格和半列分隔。我将删除该空间并对其进行测试。 – Kassem 2011-04-28 09:58:03