首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当不在jquery模式对话框中时,select2插件运行良好

当不在jquery模式对话框中时,select2插件运行良好
EN

Stack Overflow用户
提问于 2013-06-06 23:22:12
回答 11查看 20.4K关注 0票数 18

我在jquery对话框中使用select2插件,但在中不起作用。当下拉时,焦点移动到输入控件,但立即离开它,不允许我键入任何内容。

这是HTML:

代码语言:javascript
复制
<div id="asignar_servicio" title="Asignar servicios a usuarios">
    <input type="hidden" class="bigdrop" id="a_per_id" />
</div>

这是javascript代码:

代码语言:javascript
复制
        $( "#asignar_servicio" ).dialog({
            autoOpen: false,
            height: 500,
            width: 450,
            modal: true,
            buttons: {
                "Cancelar": function () {
                    $('#asignar_servicio').dialog('close');
                }
            }
        });
        $("#a_per_id").select2({
            placeholder: "Busque un funcionario",
            width: 400,
            minimumInputLength: 4,
            ajax: {
                url: "@Url.Action("Search", "Personal")",
                dataType: 'json',
                data: function (term, page) {
                    return {
                        q: term,
                        page_limit: 10,
                    };
                },
                results: function (data, page) {
                    return { results: data.results };
                }
            }
        }).on("change", function (e) {
            var texto = $('lista_personal_text').val().replace(/ /g, '');
            if (texto != '')
                texto += ',';
            texto += e.added.text;

            var ids = $('lista_personal_id').val().replace(/ /g, '');
            if (ids != '')
                ids += ',';
            ids += e.added.id;
        });

我有这个相同的代码在其他页面,它的工作。

任何帮助都将不胜感激,

谢谢詹姆

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-06-06 23:36:22

我已经找到了这个解决方法。https://github.com/ivaynberg/select2/issues/1246

干杯Jame

票数 3
EN

Stack Overflow用户

发布于 2013-08-23 00:55:23

jstuardo的链接很好,但在该页面上有很多需要筛选的内容。以下是您需要的代码:

代码语言:javascript
复制
$.ui.dialog.prototype._allowInteraction = function(e) {
    return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop').length;
};

只需将其添加到您要设置select2下拉列表的位置。

票数 25
EN

Stack Overflow用户

发布于 2016-10-17 16:14:15

一种简单的方法:

代码语言:javascript
复制
$.ui.dialog.prototype._allowInteraction = function (e) {
    return true;
};

在您设置select2的任何位置之后添加此命令

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16966002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档