jqGrid:单字段搜索中的搜索规则

jqGrid:单字段搜索中的搜索规则,jqgrid,Jqgrid,我试图单独验证整数数据的搜索字段,但很遗憾,我无法这样做。我已经尝试了所有可能的解决方案,比如searchrules:{required:true,integer=true}等等。。 但没有一个是有成效的。 我基本上启动了搜索对话框,没有输入任何数据,我点击了“查找”按钮。根据以上选项,我认为应该向用户显示一条验证消息,要求用户在点击find之前在字段中输入一个值 [更新]-代码片段 var grid = $("#list"); grid.jq

我试图单独验证整数数据的搜索字段,但很遗憾,我无法这样做。我已经尝试了所有可能的解决方案,比如searchrules:{required:true,integer=true}等等。。 但没有一个是有成效的。 我基本上启动了搜索对话框,没有输入任何数据,我点击了“查找”按钮。根据以上选项,我认为应该向用户显示一条验证消息,要求用户在点击find之前在字段中输入一个值

[更新]-代码片段

            var grid = $("#list");  
            grid.jqGrid({
             url:'/index.jsp',
             datatype: 'json',
             mtype: 'POST',
             colNames:['Name','Age', 'Address'],
             colModel :[ 
                  {name:'name', index:'name', width:55,search:true }, 
                  {name:'age', index:'age', 
                   width:90,editable:true,search:true, stype:'text',
                   searchrules:{required:true,integer:true}}, 
                  {name:'address', index:'address', width:80, 
                   align:'right', editable: true,search:false }
             ],
             pager: '#pager',
             jsonReader : {
                     root:"address",
                     page: "page",
                     total: "total",
                     records: "records",
                     repeatitems: false
             },
             rowNum:10,
             rowList:[10,20,30],
             sortname: 'name',
             sortorder: 'desc',
             viewrecords: true,
             gridview: true,
             autowidth: true,
             toppager: true,
             loadtext: "Loading records.....",
             caption: 'Test Grid',
             gridComplete: function(){ 

         }

          });

      **grid**.jqGrid('navGrid','#pager',
      {view:true,edit:true,add:true,del:true,refresh:true,
       refreshtext:'Refresh',addtext:'Add',
       edittext:'Edit',cloneToTop:true,
       edittitle: "Edit selected row"},
      {},{},{},
      {caption: "Search The Grid",Find: "Find Value",Reset: "Reset"},
      {});
[更新]:我无法使searchrules在单一/高级搜索模式下正常工作

[更新]:即使在
不适用于searchrules。

所述问题的原因是jqGrid中的一个错误

ret=$.jgrid.checkValues(val,-1,null,colmodeleItem.searchrules,colmodeleItem.label);
$.jgrid.checkValues
的第三个参数初始化为
null
,但
checkValues
的上一个版本的实现已启动(请参阅)

var cm=g.p.colModel;
但是
g
被初始化为
null
。这是产生错误的基础,但我没有写代码的一部分

人们可以用不同的方法解决这个问题。我建议将使用
null
参数调用
$.jgrid.checkValues
的行修改为

ret=$.jgrid.checkValues(val,-1,{p:{colModel:p.columns}},colModelItem.searchrules,colModelItem.label);
此外,可以肯定的是,我建议修改

if(!nm){nm=g.p.colNames[valref];}

如果(!nm){nm=g.p.colNames!=null?g.p.colNames[valref]:cm.label;}

可以获得的
jquery.jqGrid.src.js的固定版本。稍后,我将在ti trirand发布我的bug报告,并给出相同的建议

你应该把你的代码贴在问题上,有什么帮助吗?我无法使searchrules在单一/高级搜索模式下正常工作。感谢您的帮助。谢谢也许这会对你有所帮助。谢谢懒鬼,我已经试过了。在上面的链接中,我们必须建立自己的自定义验证。但我只是想知道为什么searchrules的默认行为不起作用。甚至中的“搜索中的验证”也不起作用。这是一个报告的bug吗?@Faz:我觉得这是jqGrid中的bug。我稍后会给你发我的答案(现在我很忙:-()谢谢Oleg。有可能得到js文件的缩小版本吗?我试图在线转换它,但没有成功。@Faz:不客气!你可以使用例如:
AjaxMinifier.exe-enc:in utf-8-clobber:true jquery.jqGrid.src.js-o jquery.jqGrid.min.js