我在jquery对话框中使用select2插件,但在中不起作用。当下拉时,焦点移动到输入控件,但立即离开它,不允许我键入任何内容。
这是HTML:
<div id="asignar_servicio" title="Asignar servicios a usuarios">
<input type="hidden" class="bigdrop" id="a_per_id" />
</div>
这是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;
});
我有这个相同的代码在其他页面,它的工作。
任何帮助都将不胜感激,
谢谢詹姆
发布于 2013-06-06 23:36:22
我已经找到了这个解决方法。https://github.com/ivaynberg/select2/issues/1246
干杯Jame
发布于 2013-08-23 00:55:23
jstuardo的链接很好,但在该页面上有很多需要筛选的内容。以下是您需要的代码:
$.ui.dialog.prototype._allowInteraction = function(e) {
return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop').length;
};
只需将其添加到您要设置select2下拉列表的位置。
发布于 2016-10-17 16:14:15
一种简单的方法:
$.ui.dialog.prototype._allowInteraction = function (e) {
return true;
};
在您设置select2的任何位置之后添加此命令
https://stackoverflow.com/questions/16966002
复制相似问题