【发布时间】:2012-08-16 04:14:51
【问题描述】:
我正在尝试使用为 Multiple Select 选择的插件构建我的下拉菜单。 这是我基于的行为:
所以,我的选择中没有 3 个硬编码的
所以,如果用户键入“汽车”,我会通过 ajax 调用发送这封信,然后我会返回一个这样的数组:
[{"id":"2489","name":"carrie"},{"id":"2490","name":"Caroline"},{"id":"2491"," name":"Carole"}]
代码:
$(function() {
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({allow_single_deselect:true});
$('.chzn-choices input').autocomplete({
source: function( request, response ) {
$.ajax({
url: "/change/name/autocomplete/"+request.term+"/",
dataType: "json",
success: function( data ) {
response( $.map( data, function( item ) {
$('ul.chzn-results').append('<li class="active-result">' + item.name + '</li>');
}
});
}
});
结果:
我在下拉菜单中输入“汽车”,得到“汽车没有结果”,然后我就得到了我想要的所有结果。
1.为什么我会收到“无结果”消息,因为我可以在我的 json 数组和列表中看到我正在获得结果。
-----------------------------
当我删除“car”并输入“sam”时。 “sam”的结果显示在“car”结果之后。 (基本上,我看到了两者的结果,而不仅仅是我当前搜索的结果)
2。我想清除 keyUp 上的 ul 吗?以为插件已经这样做了
-----------------------------
当我单击一个名称以实际选择它并将其添加到选择中时,我在 selected.js 文件中收到一个 javascript 错误
项目未定义
“item.selected =真;”第732行
插件链接: http://harvesthq.github.com/chosen/chosen/chosen.jquery.js
它没有在选择中添加任何内容。
3.不知道为什么会这样
-----------------------------
你们知道我做错了什么吗?我完全被困在这里......!
哦,顺便说一句,我不介意更改插件源,因为它是我唯一使用它的地方......
【问题讨论】:
-
在追加.try之前如何做 $('ul.chzn-results').empty()
-
现在它只返回我搜索的词的结果,但它只返回 1 个结果,即使我的数组中有 10 个
-
我为此找到的解决方案是添加 $('.ui-autocomplete-input').keyup(function() { $('.chzn-results').empty(); } );但这仅适用于问题 #2
-
你不应该操纵
chzn-choices。您应该将从服务器获取的 json 项附加到 chzn-select 字段,然后调用$(".chzn-select").trigger("liszt:updated");。 -
$("#form_field").trigger("chosen:updated");用过这个
标签: javascript jquery jquery-plugins jquery-chosen