項目中須要爲行編輯器Editor的某個列的文本框添加改變事件html
需求:新增行時,爲用戶名輸入特殊字符進行驗證,不容許保存用戶數據編輯器
html頁面ui
<table id="gridlist" data-bind="datagrid:grid" > <thead> <tr> <th field="ck" checkbox="true" readOnly:true ></th> <th field="OptimisticLockField" hidden="true"></th> <th field="UserCode" sortable="true" align="left" width="80" editor="{type:'validatebox',options:{required: true }}" >用戶名 </th> <th field="UserName" sortable="true" align="left" width="200" editor="{type:'validatebox',options:{required: true }}" >名稱 </th> <th field="OriginalPassword" sortable="true" align="left" width="200" >密碼 </th> <th field="Org" sortable="true" align="left" width="200" editor="{type:'lookup',options:{required:true,lookupType:'cloud.PcsOrg',window:{title:'所屬機構'},queryParams:{State:9,Ou:false}}}" formatter="formatOrg" >所屬機構 </th> <th field="IsEnable" sortable="true" align="center" width="120" editor="{type:'checkbox',options:{on:1,off:0}}" formatter="com.formatCheckbox" >是否可用</th> <th field="IsAdmin" align="center" width="120" editor="{type:'checkbox',options:{on:1,off:0}}" formatter="com.formatCheckbox">是否管理員</th> <th field="LoginCount" sortable="true" align="right" width="120" >登陸次數</th> <th field="LastLoginDate" sortable="true" align="left" width="135" formatter="com.formatDate">最後登陸日期</th> <th field="LastLoginOU" align="left" width="170" hidden="true" >最後登陸組織</th> <th field="OrganizeNames" align="left" width="170">最後登陸組織</th> <th field="Permit" align="center" width="320" formatter="formatterButton"> 操做 </th> <th field="Description" align="left" width="150" editor="text">描述</th> </tr> </thead> </table>
js代碼:this
//建立editor編輯器以後執行事件 this.grid.OnAfterCreateEditor = function (editors,row) { //編輯器userCode添加改變事件 if (row != undefined && row._isnew!=undefined) { editors["UserCode"].target.bind("change",function() { var getUser = editors["UserCode"].target.val(); //判斷新增狀態下用戶名只能使用數字或着字母或着下劃線 if (!/^[\w]+$/.test(getUser)) { com.message('error', '用戶名只能數字、字母、下劃線.'); return; } }); } }
頁面效果:spa
總結:code
使用easyui的datagrid的OnAfterCreateEditor事件,經過 editors["UserCode"].target.bind("change",function(){ } 綁定改變事件,其中獲取文本框的值的語法是:orm
editors["UserCode"].target.val();
//建立editor編輯器以後執行事件
this.grid.OnAfterCreateEditor = function (editors,row) {
//編輯器userCode添加改變事件
if (row != undefined && row._isnew!=undefined) {
editors["UserCode"].target.bind("change",function()
{
var getUser = editors["UserCode"].target.val();
//判斷新增狀態下用戶名只能使用數字或着字母或着下劃線
if (!/^[\w]+$/.test(getUser)) {
com.message('error', '用戶名只能數字、字母、下劃線.');
return;
}
});
}
}htm