【发布时间】:2023-03-16 07:14:01
【问题描述】:
现在我有这个postData: { search: function() { return $("#search").val(); },},
然后我在 jqGrid 函数之上有一个 jQuery 函数,它执行一些逻辑并生成一个字符串变量。现在我只是使用该变量并设置搜索元素的值,如下所示:
$("#startSearch").click(function() {
$("#search").val(searchVal);
$("#grid").trigger("reloadGrid");
});
这行得通,但我希望以不同的方式做到这一点。我只想将我的 jQuery 函数生成的 seachVal 变量直接传递到 postdata 中。
我试过这样但它不起作用 postData:{ search: function() { return searchVal; },},
我收到一条错误消息,提示未定义 searchVal。我确保 searchVal 变量是全局变量,但它仍然无法正常工作。
这是可能的还是我只是看错了?
任何帮助都会很棒。
谢谢
更新:
这是页面的精简版:
<fieldset>
<input type='text' id='search' />
<button type='button' id='startSearch'>Search</button>
</fieldset>
<script type="text/javascript">
$(function(){
$("#startSearch").click(function() {
serchVal = 'transID > "5"';
$("#search").val(serchVal);
$("#grid").trigger("reloadGrid");
});
$("#list").jqGrid({
url:'data.cfc?method=gridData',
datatype: 'json',
mtype: 'POST',
jsonReader : {
root: "rows",
page: "currentpage",
total: "totalpages",
records: "totalrecords",
repeatitems: false,
id: "0",
},
postData: { search: function() { return $("#search").val(); },},
colModel :[
{name:'transid', label:'Trans ID', width:60},
{name:'companyname', label:'Company Name', width:245},
{name:'companycode', label:'Company Code', width:245},
{name:'datasource', label:'Datasource', width:245}
],
pager: '#pager',
rowList:[10,50,100],
rowNum:'10',
height:221,
sortname: 'transid',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'Get Trans',
altRows: false,
autowidth: true,
forceFit: true,
rownumbers: true,
scroll: false,
sortable: true
});
$("#list").jqGrid('navGrid','#pager',{edit:false,add:false,del:false,search:false,view:true});
});
</script>
<table id="grid"></table>
<div id="pager"></div>
【问题讨论】:
-
要了解您的问题,您需要了解您在哪里定义变量
searchVal以及您在何时何地为它赋值。所以需要更完整的代码。 -
谢谢奥列格。我刚刚用更多代码更新了我的问题
标签: javascript jquery jqgrid