【发布时间】:2012-03-16 09:51:50
【问题描述】:
我在使用这组插件(多选和 jQuery)时遇到了下一个问题。
我在选择标签中有静态列表。我用 smarty(php) 设置它并用多选插件包装它。然后我收到带有 ajax 请求的 json 数据,最后我想选择静态列表中的项目。所以...我正在使用下一件事。
$("select#search_operation").change(function(){
$.getJSON("ajax_oper_workers",{order_id: $("#search_order_id :selected").val(), operation_id: $("select#search_operation").val(), ajax: 'true'}, function(data){
// alert();
var options ="";
for (var key in data) {
$("#worker_"+data[key].id).attr('selected', 'selected');
};
$("#workers_select").multiselect("refresh");
});
});
$("#workers_select").multiselect({sortable: false, dividerLocation: 0.51, width: 1000});
点击提交按钮发送帖子,我可以看到发送了正确的项目。但在点击它之前,我想在多选视图的左侧看到这些项目。我认为我的代码应该可以工作,但事实并非如此。它不会在视图的右侧放置正确的项目。
为了清楚地理解这里是它的外观图片。
【问题讨论】:
-
我不太明白它应该如何工作。您搜索某些内容,然后获取带有结果的 JSON,并且您希望所有结果都被选中?
-
是的,你明白了。之后,它们必须从右列消散并出现在左侧。
-
之后呢?我对左边需要什么,右边需要什么感到困惑? :)
-
哦,明白了。我会尽力解释。页面重新加载时加载列表的右侧。在我可以在输入字段中选择/键入一些数据之后。当最后一个字段改变时,多选必须继续。我已经用警报检查了它,它在“#worker_”+data[key].id'中给了我正确的值。所以我确信它可以正常工作。但是多选不想在发生变化时刷新自己。
-
输入新数据后,您似乎不会“渲染”多选,因此您需要在 getJSON succes 函数中运行多选功能。您能否发布一些示例 JSON 数据,然后尝试在 JSFIDDLE 中制作它:-)
标签: jquery jquery-ui multi-select