我正在使用jqGrid的搜索对话框,并根据此Stack Overflow post调整beforeShowSearch和afterRedraw事件中文本输入的大小。
这在初始加载和重置时效果很好,但是,正如该帖子答案的注释中所提到的,当从列拖放列表中选择新值时,文本输入将其宽度调整为默认值。如何在选择新的droplist项时保持文本输入的宽度?
发布于 2018-04-23 23:38:12
我想出了一个解决方案。如果有人知道另一种方法,请贡献。下面是我所做的:我将一个.change()函数附加到droplist。此函数用于设置文本框的宽度值,有效地使其保持不变。为了确保在设置.change()函数时存在droplist,我在来自beforeShowSearch事件的相同函数调用中设置了它。代码如下:
$(divId).jqGrid('navGrid', pagerId, { add: true, edit: false, del: false, search: true },
{}, //default for edit
{}, //default for add
{}, //delete disabled
{ //search
width: '750',
beforeShowSearch: function () {
//set textbox width
$(".searchFilter table td .input-elm").css('width', '300px');
//keep it in place with .change() on select
$(".searchFilter table td select").change(function () {
$(".searchFilter table td .input-elm").css('width', '300px');
});
return true;
},
{} // view parameters
);
当然,可以通过将.css调用提取到它自己的函数中来消除重复。按您喜欢的方式重构。
https://stackoverflow.com/questions/49949568
复制相似问题