2013-05-08 81 views
0

我正在使用jqGrid高级搜索。我不想使用空值进行搜索,因此我在搜索规则(searchrules:{required:true})中设置了所有字段的required:true。我的问题是我得到“字段是必需的”错误消息,如果我选择的是null运算符并在查找弹出窗口中单击查找按钮。在jqGrid搜索中显示“Field is required”错误消息为空操作符

$(document).ready(function() { 
    var grid = $("#list"), 
     mydata = [ 
      {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
      {id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
      {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} 
     ]; 

    grid.jqGrid({ 
     datatype: "local", 
     data: mydata, 
     colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
     colModel:[ 
      {name:'id',index:'id', key: true, width:70, sorttype:"int",searchrules:{required:true}}, 
      {name:'invdate',index:'invdate', width:90, sorttype:"date",searchrules:{required:true}}, 
      {name:'name',index:'name', width:100,searchrules:{required:true}}, 
      {name:'amount',index:'amount', width:80, align:"right",sorttype:"float",searchrules:{required:true}}, 
      {name:'tax',index:'tax', width:80, align:"right",sorttype:"float",searchrules:{required:true}}, 
      {name:'total',index:'total', width:80,align:"right",sorttype:"float",searchrules:{required:true}}, 
      {name:'note',index:'note', width:150, sortable:false,searchrules:{required:true}} 
     ], 
     search:true, 
     pager:'#pager', 
     jsonReader: {cell:""}, 
     rowNum: 10, 
     rowList: [5, 10, 20, 50], 
     sortname: 'id', 
     sortorder: 'asc', 
     viewrecords: true, 
     height: "100%", 
     caption: "Multiple search with local data" 
    }); 
    grid.jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:true,refresh:true}, 
       {},{},{},{multipleSearch:true, multipleGroup:true, showQuery: true}); 
}); 

HTML代码

<table id="list"></table> 
<div id="pager"></div> 

感谢

回答

0

在我看来,这一要求使用null运营商违背规则searchrules: {required: true}。规则required: true意味着搜索字段的数据不能为空。另一方面null运营商没有数据。

+0

好的,但你有这个问题的解决方案吗?我想用null操作符。 – Rigan 2013-05-08 18:25:33

+0

@Rigan:我不明白你为什么要在这种情况下使用'required:true'?你应该删除它。您网格中的哪些列可以为空? '笔记'专栏?那么你应该为列删除'searchrules:{required:true}'。 – Oleg 2013-05-08 18:56:59

+0

所有列(字段)都可以为空,但不包含Inv(Id),但我不想用空值搜索列(字段)。所以我使用了'required:true'。 – Rigan 2013-05-08 21:46:51