2013-01-05 26 views
0

最近,我使用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> 

更新:每當我點擊按鈕來編輯/添加/刪除,它總是在螢火蟲內導致錯誤:

$.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,我很困惑。

+0

你可以發佈類型函數應該被定義的代碼嗎?這看起來像它使用自定義jQuery插件,但你沒有明確創建它,因此使其不確定。 –

+0

只需使用這個:剛剛jquery包括 –

回答

0

將兩個JavaScript文件與同一個模塊的實現包含得更多一次,這是錯誤的。此外,以正確的順序包含JavaScript文件也很重要。另外,你不應該包含任何你不使用的插件。

典型地,一個一些溶液的顯影期間使用

i18n/grid.locale-en.js 
jquery.jqGrid.src.js 

和在最終溶液中使用

i18n/grid.locale-en.js 
jquery.jqGrid.min.js 

。見the documentation

一個應該包括jQuery 之前任何jqGrid JavaScript文件。包括ui.jqgrid.css和jQuery UI CSS也是必需的。

如果你仍然有錯誤,你應該發佈錯誤發生的確切行號jquery.jqGrid.src.js。你應該發佈更完整的JavaScript代碼,你使用。

+0

非常感謝您的詳細回覆,我按照您的指示更新了問題,請注意var obj = $ .type(pref);,which –

+0

如果功能添加/編輯/刪除不能在我的開發中工作,我會放棄這個解決方案並轉向其他人,像我自己開發它們一樣,再次感謝@ Oleg! –

+0

@BradyChu:我們現在是更接近問題的原因,但現在需要知道case中的'pref'的值和類型,並且知道'stripPref'被調用的位置是很好的,而且不包含jqGrid的定義你使用的是什麼,特別重要的是你是否改變了jqGrid的'idPrefix'選項的值,該選項的默認值是''「',''.type(pref)''中應該沒有錯誤''pref'等於'「」'或任何其他字符串。 – Oleg

0

我剛剛遇到完全相同的錯誤消息。我發佈什麼對我有用的情況下可能會幫助其他人。 我得到了TypeError:當試圖從窗體保存時,b.type不是函數。 我使用的jqgrid版本是4.4.3,而且我正在調用jquery(1.4.2)的舊版本。 使用更新版本的jquery(在我的情況下是1.7.2)解決了這個問題。我猜'功能'類型不是在版本1.4.2。

0

解決了這個問題。僅僅因爲jqGrid不支持jQuery 1.9

相關問題