如何允许转到免费的 jqgrid 寻呼机中的指定页面
How to allow go to specified page in free jqgrid pager
免费的jqgrid有页码字段。输入页码并按回车键应该调用指定的 table。
这有时会停止工作。
使用远程 JSON 数据。输入页码并按回车键没有任何作用。
我将 alert(key);
添加到 jqgrid 源代码中,如下面的代码所示
https://github.com/free-jqgrid/jqGrid/blob/master/js/jquery.jqgrid.src.js#L4045
如果按 enter,则不会出现警告框。
如果按下其他键,则会出现警告框。
如何解决这个问题?如何找到输入被忽略的原因?也许其他一些方法捕获 enter 键并取消事件,以便它不会传递给此处理程序。
如何找到这个?
if (p.pginput === true) {
$("input.ui-pg-input", pgcnt).bind("keypress.jqGrid", function (e) {
var key = e.charCode || e.keyCode || 0, newPage = intNum($(this).val(), 1);
alert(key); // ADDED
if (key === 13) {
if (!clearVals("user", newPage, intNum(p.rowNum, 10))) { return false; }
$(this).val(newPage);
p.page = ($(this).val() > 0) ? $(this).val() : p.page;
populate.call(ts);
return false;
}
return this;
});
}
更新
Chrome 开发人员工具显示以下侦听器。如何找到哪些阻止了 enter 键?
我想这个问题不存在于免费的 jqGrid 中。我猜你注册了 returns false
的 keydown
的其他句柄(或以其他方式,如 e.preventDefault()
),这会阻止处理其他 keydown
和处理<kbd>Enter</kbd>
键。为了确保必须调试所有已注册的 keydown
和 keydown
处理程序。
更新: 我想您将寻呼机输入字段移到了导航栏内(因为我记得您的老问题)。结果,寻呼机输入中的 Enter 将被替换为 click
。
$focused = $(this).find(":focus");
if ($focused.length > 0) {
$focused.trigger("click");
return false;
}
标准导航栏中不存在该问题。它只有在您自定义导航栏后才会存在。尽管如此,我今天发布了 the changes 将行 $focused = $(this).find(":focus");
修改为
$focused = $(this).find(".ui-pg-button").filter(":focus");
在免费jqGrid的标准导航器中没有任何效果,但可以解决您自定义导航器栏后存在的问题。
免费的jqgrid有页码字段。输入页码并按回车键应该调用指定的 table。 这有时会停止工作。 使用远程 JSON 数据。输入页码并按回车键没有任何作用。
我将 alert(key);
添加到 jqgrid 源代码中,如下面的代码所示
https://github.com/free-jqgrid/jqGrid/blob/master/js/jquery.jqgrid.src.js#L4045
如果按 enter,则不会出现警告框。 如果按下其他键,则会出现警告框。
如何解决这个问题?如何找到输入被忽略的原因?也许其他一些方法捕获 enter 键并取消事件,以便它不会传递给此处理程序。 如何找到这个?
if (p.pginput === true) {
$("input.ui-pg-input", pgcnt).bind("keypress.jqGrid", function (e) {
var key = e.charCode || e.keyCode || 0, newPage = intNum($(this).val(), 1);
alert(key); // ADDED
if (key === 13) {
if (!clearVals("user", newPage, intNum(p.rowNum, 10))) { return false; }
$(this).val(newPage);
p.page = ($(this).val() > 0) ? $(this).val() : p.page;
populate.call(ts);
return false;
}
return this;
});
}
更新
Chrome 开发人员工具显示以下侦听器。如何找到哪些阻止了 enter 键?
我想这个问题不存在于免费的 jqGrid 中。我猜你注册了 returns false
的 keydown
的其他句柄(或以其他方式,如 e.preventDefault()
),这会阻止处理其他 keydown
和处理<kbd>Enter</kbd>
键。为了确保必须调试所有已注册的 keydown
和 keydown
处理程序。
更新: 我想您将寻呼机输入字段移到了导航栏内(因为我记得您的老问题)。结果,寻呼机输入中的 Enter 将被替换为 click
。
$focused = $(this).find(":focus");
if ($focused.length > 0) {
$focused.trigger("click");
return false;
}
标准导航栏中不存在该问题。它只有在您自定义导航栏后才会存在。尽管如此,我今天发布了 the changes 将行 $focused = $(this).find(":focus");
修改为
$focused = $(this).find(".ui-pg-button").filter(":focus");
在免费jqGrid的标准导航器中没有任何效果,但可以解决您自定义导航器栏后存在的问题。