2009-12-21 63 views
2

有沒有人成功使用了帶有JQGrid的jQuery Validation plugin?我意識到JQGrid有它自己的驗證方案,但它有限且有點笨拙;而且我更願意重複使用我在其他表單中使用的驗證用戶界面,語言和規則。帶JQGrid的jQuery驗證插件?

+0

jQuery驗證是否能夠驗證任意DOM元素(非輸入/文本/選擇)?如果是+你展示了我應該怎麼猜測 – jitter 2009-12-21 18:45:49

+0

你可以使用JQGrid的jQuery驗證,但是有一些注意事項。 一個問題是,jQuery驗證會在您正在編輯的字段旁邊添加錯誤消息,並且由於JQGrid的佈局方式,您看不到錯誤消息。 另一個問題是,即使您的驗證有效,JQGrid在完成編輯時會將單元恢復爲原始狀態。所以如果用戶犯了一個錯誤,他們將不得不重新開始。 – 2009-12-23 17:42:22

回答

4

編輯內聯和驗證可能與此步驟。

寫您的功能突出和unhilight您的輸入框:

​​

擴展的jqGrid:

; (function($) { 
    $.jgrid.extend({ 
     onErrorHighlight: GridErrorHighlight, 
     onUnHighlight: GridErrorUnHighlight, 
    }); 
})(jQuery); 

現在很容易的jQuery驗證插件使用自定義功能。僅需創建此選項並初始化驗證插件:

var table = $('#tableid').jqGrid({}); 

var validateOpt = { 
     meta: "validate", 
     highlight: table.onErrorHighlight, 
     unhighlight: table.onUnHighlight 
    }; 

$(document).ready(function() { 
    $('#formId').validate(val); 
}); 

現在很容易爲單輸入單元設置驗證器。 我們使用的jqGrid EditOptions到模型添加自定義類驗證:

"editoptions":{"class":" {validate: { range:[0,1] } }"} 

這一切!