【发布时间】:2011-02-19 06:19:02
【问题描述】:
我想知道 JqGrid 高级搜索是否可以为我想要搜索的某些字段显示多个文本框。 例如,如果我有一个“电话号码”字段,我希望能够可视化 2 个框,一个用于区号,另一个用于电话号码的其余部分。 然后按“查找”后,我希望能够获取这两个值并将它们合并或做其他事情。
任何帮助将不胜感激,
谢谢,
来自ano2802
【问题讨论】:
我想知道 JqGrid 高级搜索是否可以为我想要搜索的某些字段显示多个文本框。 例如,如果我有一个“电话号码”字段,我希望能够可视化 2 个框,一个用于区号,另一个用于电话号码的其余部分。 然后按“查找”后,我希望能够获取这两个值并将它们合并或做其他事情。
任何帮助将不胜感激,
谢谢,
来自ano2802
【问题讨论】:
您有一个有趣的问题,但我建议您将电话号码的输入做得更好,更便于用户使用。有一个不错的 jQuery“Masked Input”插件。它允许您在输入字段中显示掩码,例如“(_) _-____”,并且只允许输入数字。要了解我的意思,请打开页面http://digitalbush.com/projects/masked-input-plugin/#demo,将焦点设置到电话字段并尝试输入一些内容。不好看吗!
要在 JqGrid 高级搜索对话框中执行此操作,您应该执行以下操作
在colModel searchoptions 块中添加“电话号码”列的定义,如下所示
{ name: 'PhoneNumber', width: 83, index: 'PhoneNumber', align: 'center', 搜索选项:{ 数据初始化:函数(元素){ $(elem).mask("(999) 999-9999"); } } }
就是这样。现在只需打开“高级搜索对话框”,选择“电话号码”字段并在输入字段中设置焦点。在http://www.trirand.com/jqgridwiki/doku.php?id=wiki:search_config&s[]=datainita 和http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules&s[]=datainit 下的jqGrid 文档中描述了函数dataInit。
顺便说一句,您可以在数据编辑(表单编辑和内联编辑)期间接收相同的屏蔽输入。只需定义相同的editoption 就像searchoptions:
{ name: 'PhoneNumber', width: 83, index: 'PhoneNumber', align: 'center',
editoptions: {
dataInit: function (elem) {
$(elem).mask("(999) 999-9999");
}
},
searchoptions: {
dataInit: function (elem) {
$(elem).mask("(999) 999-9999");
}
}
}
【讨论】:
multipleSearch: true 的情况下存在错误。拥有多个编辑字段没有问题。不幸的是,由于我的主要项目缺乏时间,我现在无法投入更多时间进行大量调查。我会在 2-3 周内回到这个问题。我只能建议您尝试将此问题作为错误放在 jqGrid 论坛 (trirand.com/blog/?page_id=393) 或尝试使用其他插件而不是“Masked Input”插件。抱歉,我决定把这些信息写给你,这样你就不用在接下来的几天里等待我的快速解决方案了。