有時,我們需要在基於jqgrid表格編輯行的單元格做規范驗證。jqgrid提供有支持,通過設置字段的editrules屬性來約束格式。
約束方式:
1、內置的約束參數 (required: true, number:true ...),詳細參考:jqgrid editrules參數說明
2、自定義函數,驗證約束 custom_func
示例:以下黃色字體為編輯的內容約束設定。
colModel: [ { label: '領導打分', name: 'MarkScore', width: 150, editable: true, editrules: { required: true, number: true, custom: true, custom_func: ValidateTvalue }, edittype: "text" }, ... ]
自定驗證的函數內容可能如下:
//自定義驗證 value=輸入控件的值,name=列名稱(來自colModel) function ValidateTvalue(value,name) { //#region 驗證分數是否為數值 var regu = "^[0-9]+(.[0-9]{2})?$"; //var regu = "/^\+?(\d*\.\d{2})$/"; var re = new RegExp(regu); if (re.test(value)) { return [true, ""]; } else { return [false, "分數【" + rowDatas.MarkScore + "】錯誤,請輸入數值型.如:12或12.23"]; } //#endregion }
函數的返回值說明:
用[]闊起,第一個代表是否通過,第二個參數代表未/通過時彈出的提示信息。
1)如果驗證通過,返回方式:return [true, ""];
2)如果驗證失敗,返回方式:return [false, "分數【" + rowDatas.MarkScore + "】錯誤,請輸入數值型.如:12或12.23"];