我知道 jQueryUI 模态窗口和 Select2 的问题。我正在使用此修复程序https://github.com/select2/select2/issues/1246#issuecomment-71710835。但目前我正在尝试将 Select2 与 jqGrid 及其编辑模式窗口集成,我注意到输入字段失去了对 keydown 的关注并且没有输入文本。我正在使用 Select2 v4.0.0 的最新版本。
- 单击 select2 - 打开列表并且输入具有焦点
- 开始搜索文本(keydown) - 输入失去焦点并且没有文本出现
- 奇怪,但是在同一个模态窗口上,当 Select2 是多种类型时,它工作正常
- Select2 在 jqGrid dataInit 事件上创建:
dataInit: function (elem) {
$(elem).css({ width: "500px" }).select2({
data: StacjeDlaIdZamPoc,
allowClear: false,
tags: false,
minimumInputLength: 0,
placeholder: "Wskaż stację",
templateResult: function (repo) {
if (repo.loading) {
return repo.text;
}
return $(repo.text2);
},
templateSelection: function (repo) {
return $(repo.text2);
},
minimumResultsForSearch: 5
}).on("select2:select", function(event) {
var LWystapien = parseInt(event.params.data.LWystapien);
$("#Wystapienie").val(1);
$("#LWystapien").val(LWystapien);
if (LWystapien > 1) {
$("#Wystapienie").prop("disabled", false).spinner("enable");
} else {
$("#Wystapienie").prop("disabled", true).spinner("disable");
}
});
}
正如我上面写的,我尝试过修复 jQueryUI 模式:
if ($.ui && $.ui.dialog && $.ui.dialog.prototype._allowInteraction) {
var ui_dialog_interaction = $.ui.dialog.prototype._allowInteraction;
$.ui.dialog.prototype._allowInteraction = function(e) {
console.log(e);
if ($( e.target ).closest('.select2-dropdown').length) { return true; }
return ui_dialog_interaction.apply(this, arguments);
};
};
但这不适用于 jqGrid 模态。
它似乎适用于 Select2 full biuld 和 AttachContainer 但我注意到 oveflow: hidden 存在问题:-(