当按下“Enter / Return”键时,我希望能够在搜索对话框中调用查找按钮。不幸的是,'savekey'选项不提交表单,也不像在编辑中那样提交表单编辑。
以下是我正在使用的代码片段。
$("#list").jqGrid('navGrid', '#pager',
{edit: true, add: true, del: true, search: true, view: true},
...
{
caption: "Search",
closeAfterSearch: true,
closeOnEscape: true,
sopt: ['cn','eq'],
savekey: [true, 13]
},
以下是我咨询过的form_editing文档的链接:
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing&s[]=savekey
以下是单字段搜索文档的链接:
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:singe_searching&s[]=navgrid
我找不到任何暗示这个功能存在的东西,但我似乎很容易。一如既往,非常感谢任何帮助或指导。
答案 0 :(得分:2)
在我看来,如果您替换了savekey: [true, 13]
选项,而该问题无法用于搜索以下beforeShowSearch和onClose事件句柄
beforeShowSearch: function(form){
form.keydown(function(e) {
if (e.which == 13) {
$(".ui-search", form).click();
}
});
},
onClose: function(form){
form.unbind('keydown');
}
此方法不仅适用于single field searching,也适用于advance searching。
如果您希望“输入”键仅在输入字段中起作用,则可以将form.keydown
替换为$('.vdata',form).keydown
并在unbind
中进行相应的更改。
答案 1 :(得分:1)
我在FireFox上遇到了同样的问题,但上述解决方案在IE中运行良好。为了使它在Firefox上运行,我不得不使用焦点功能而不是点击如下:
beforeShowSearch: function (form) {
form.keydown(function (e) {
if (e.which == 13) {
$("#fbox_list_search").focus();
}
});
},
答案 2 :(得分:0)
这非常有用,但我提供的解决方案并不适合我。我调整了提供的代码,它现在有些工作,但它似乎没有提交正确的数据。每当我按下回车键时,它会在输入框中提交一个“0”而不是我实际放在那里的任何东西。无论出于何种原因,它都没有发布searchString。我正在使用的代码是:
beforeShowSearch: function(form){
$(form).keydown(function(e) {
if (e.keyCode == 13) {
$("#fbox_cust_grid_search").click();
}
});
},
onClose: function(form){
$(form).unbind('keydown');
}
你们有没有人建议这里可能发生什么?
编辑:有趣的是,当我在.click()方法之前提醒某事(任何事情)时,数据会被完美地发布。有什么想法吗?
答案 3 :(得分:0)
尝试以下代码。适合我:
beforeShowSearch: function(form){
$(form).keydown(function(e) {
if (e.keyCode == 13) {
setTimeout(function() {
$("#fbox_cust_grid_search").click();
}, 200);
}
});
return true;
},
onClose: function(form){
$("#fbox_cust_grid_search").unbind('keydown');
}
调用click方法过快时似乎存在问题。让网格200ms在搜索之前做它必须做的事情似乎可以解决问题。