错误& # 39;美元.类型不是函数var obj = $.类型(pref);'在jqGrid中提交表单时
Error '$.type is not a function var obj = $.type( pref );' when submit a form in jqGrid
最近,我正在使用jqGrid来表示我的业务数据集,并且我发现jqGrid具有编辑/添加/删除/查看功能,因此我尝试使用它。但是我遇到了一个问题,尽管我尽力了,我还是不能解决它。
我这样做的例子从这个网站:
jQuery("#deptGrid").jqGrid('navGrid', '#deptNav', {
view : true
},
{
jqModal : true,
checkOnUpdate : true,
savekey : [ true, 13 ],
navkeys : [ true, 38, 40 ],
checkOnSubmit : true,
reloadAfterSubmit : false,
closeOnEscape : true,
bottominfo : "Fields marked with (*) are required"
}, {
jqModal : true,
checkOnUpdate : true,
savekey : [ true, 13 ],
navkeys : [ true, 38, 40 ],
checkOnSubmit : true,
reloadAfterSubmit : false,
closeOnEscape : true,
bottominfo : "Fields marked with (*) are required"
}, {
reloadAfterSubmit : false,
jqModal : false,
closeOnEscape : true
}, {
closeOnEscape : true
}, {
navkeys : [ true, 38, 40 ],
height : 250,
jqModal : false,
closeOnEscape : true
});
UPDATE:以下是我的全部内容:
<link rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/styles/stylesheet.css" />
<link rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/js/jquery/ui/themes/ui-lightness/ui.all.css" />
<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/redmond/jquery-ui-1.8.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="<%=BASE_PATH %>jqGrid4.4.1/themes/ui.multiselect.css" />
<!-- Including JS -->
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/superfish/js/superfish.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/tab.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/global.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/thickbox/thickbox.js"></script>
<link rel="stylesheet" type="text/css" href="<%=BASE_PATH %>admin/js/jquery/thickbox/thickbox.css" />
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.form.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery.validate.js"></script>
<script type="text/javascript" src="<%=BASE_PATH %>admin/js/jquery/jquery-ui-timepicker-addon.js"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.bgiframe-2.1.2.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.core.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.widget.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.button.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.position.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.resizable.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.ui.dialog.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>admin/js/jquery/ui/jquery.effects.core.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>js/kevinshi.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>jqGrid4.4.1/js/jquery.jqGrid.src.js" type="text/javascript"></script>
<script src="<%=BASE_PATH %>jqGrid4.4.1/js/i18n/grid.locale-en.js" type="text/javascript"></script>
更新:每当我点击编辑/添加/删除按钮时,它总是在firebug中引起错误:
$.type is not a function
var obj = $.type( pref );
我将其跟踪到jqGrid源代码中,这个错误发生在文件jquery.jqGrid.src.js
的第52行,如下所示:
stripPref : function (pref, id) {
var obj = $.type( pref ); // Happened at this line.
if( obj == "string" || obj =="number") {
pref = String(pref);
id = pref !== "" ? String(id).replace(String(pref), "") : id;
}
return id;
},
所以,就在这一刻,我可以说找到了jQuery.type()
方法,但是我已经包含了库jquery.min.js
,我很困惑。
将同一个模块的实现多次包含在两个JavaScript文件中是错误的。此外,以正确的顺序包含JavaScript文件也很重要。此外,你不应该包含任何你不使用的插件。
通常使用
i18n/grid.locale-en.js
jquery.jqGrid.src.js
在开发一些解决方案和使用
i18n/grid.locale-en.js
jquery.jqGrid.min.js
在最终解中。参考文档
在任何jqGrid JavaScript文件之前都应该包含jQuery 。包括ui.jqgrid.css
和jQuery UI CSS也需要。
如果你仍然有一个错误,你应该张贴准确的行号jquery.jqGrid.src.js
在哪里发生了错误。
我刚刚遇到了完全相同的错误消息。我把对我有用的东西贴出来,以防对其他人有帮助。我得到了TypeError: b.type不是一个函数当试图从表单中保存。我使用的jqgrid版本是4.4.3,我调用的是旧版本的jquery(1.4.2)。使用更新版本的jquery(在我的例子中是1.7.2)解决了这个问题。我猜函数'type'不在1.4.2版本中。
解决了这个问题。仅仅因为 jqGrid
不支持 jQuery 1.9
。
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 如何在DOM元素上按类型构建此函数
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何从querySelectorAll中获取按钮类型
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何将具有文本类型值的var放入jQuery函数中
- 我如何验证/发布编辑类型为表单编辑中的 jqgrid 选择的列
- “未捕获的类型错误:无法调用未定义的方法'indexOf'”时选择jqgrid行
- Jqgrid编辑类型:"选择“;事件
- 当数据类型为url时,jqgrid setColProp不起作用
- jqGrid分页不能使用json数据类型
- 使用数据类型:function时,JQgrid中未显示数据
- jqgrid 3.6.4是否支持本地数据类型?
- 数据不可见与jqGrid数据类型JSON
- 使用jsonstring数据类型加载jqgrid表
- jqGrid 用户数据,具有数字类型而不是对象
- jqGrid v4.0 寻呼机在使用本地数据类型时不起作用
- 错误& # 39;美元.类型不是函数var obj = $.类型(pref);'在jqGrid中提交表单时