【发布时间】:2010-12-16 08:00:54
【问题描述】:
问题是 onkeydown="doSearch" 给出的错误是找不到 JS 文件中的 dosearch 函数,但如果我把它内联而不是它的工作正常。 我做错了吗?
//在名为jq.js的JS文件中
jQuery().ready(function () {
jQuery("#bigset").jqGrid({
//Grid code
}).jqGrid('navGrid', '#pagerb', { edit: false, add: false, del: false, search: true }, {}, {}, {}, { multipleSearch: true });
var timeoutHnd;
var flAuto = false;
function doSearch(ev) {
if (!flAuto)
return;
// var elem = ev.target||ev.srcElement;
if (timeoutHnd)
clearTimeout(timeoutHnd)
timeoutHnd = setTimeout(gridReload, 500)
}
function gridReload() {
var nm_mask = jQuery("#item_nm").val();
var cd_mask = jQuery("#search_cd").val();
jQuery("#bigset").jqGrid('setGridParam', { url: "/Jq/bigset?nm_mask=" + nm_mask + "&cd_mask=" + cd_mask, page: 1 }).trigger("reloadGrid");
}
function enableAutosubmit(state) {
flAuto = state;
jQuery("#submitButton").attr("disabled", state);
}
});
//CSHTML页面
@model Learning.Ajax.Models.Order
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="h">Search By:</div>
<div>
Code<br />
<input type="text" id="search_cd" onkeydown="doSearch(arguments[0]||event)" />
<input type="checkbox" id="autosearch" onclick="enableAutosubmit(this.checked)" /> Enable Autosearch <br/>
</div>
<div>
Name<br />
<input type="text" id="item_nm" onkeydown="doSearch(arguments[0]||event)" />
<button onclick="gridReload()" id="submitButton" style="margin-left:30px;">Search</button>
</div>
<br />
<table id="bigset"></table>
<div id="pagerb"></div>
<br /><br />
@*<table id="addgrid"></table>
<div id="pagerad"></div>
<input type="button" id="adddata" value="Add" />
<input type="button" id="editdata" value="Edit Selected" />*@
<script src="@Url.Content("~/Scripts/jq.js")" type="text/javascript"></script>
【问题讨论】:
-
当你把所有的函数都保存在 jquery .ready 中时,作用域变成了本地的,把它们移出,这样它们就会是全局的
标签: jquery jqgrid asp.net-mvc-3