我正在使用jqGrid的搜索对话框,并根据此堆栈溢出帖子调整之前ShowSearch和之后重绘事件中的文本输入的大小。
这在初始加载和重置时效果很好,但是,正如该帖子答案的评论中所述,当从列下拉列表中选择新值时,文本输入会将其宽度调整为默认值。 如何在选择新的下拉列表项时保持文本输入的宽度?
我制定了一个解决方案。 如果有人知道其他方式,请做出贡献。 这是我所做的:我将一个 .change(( 函数附加到下拉列表。 此函数设置文本框的宽度值,有效地将其保留在适当的位置。 为了确保在设置 .change(( 函数时下拉列表存在,我在 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调用提取到其自己的函数中来消除重复。 根据需要进行重构。