【问题标题】:Assign selected tag on items dynamically using multiselect plugin in jQuery使用 jQuery 中的多选插件动态为项目分配选定的标签
【发布时间】: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


【解决方案1】:

如果你需要 AJAX 使用这个:

https://github.com/michael/multiselect/tree/next

这是完全相同的插件,只是具有 AJAX 功能:-)

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多