jquery easyui 中擴展datagrid自定義方法

1.在easyui 中當業務中涉及到要爲datagrid控件添加一些動態屬性設置時,可能會用到自定義方法

$.extend($.fn.datagrid.methods, {    
    setDColumnTitle: function(jq, option){    
        if(option.field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+option.field+']',$panel);  
                if($field.length){  
                    var $span = $("span",$field).eq(0);  
                    var $span1 = $("span",$field).eq(1);  
                    $span.html(option.title);  
                    $span1.html(option.title);  
                }  
            });  
        }  
        return jq;        
    } ,    
    removeRequired: function(jq, field){    
    if(field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+field+']',$panel);  
                if($field.length){  
                    var $input = $("input",$field);                   
                    $input.removeClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
                }  
            });  
        }  
        return jq;            
    },  
    addRequired: function(jq, field){ 
    if(field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+field+']',$panel);  
                if($field.length){  
                    var $input = $("input",$field);                   
                    $input.addClass("validatebox-text validatebox-invalid").unbind('focus').unbind('blur');
                }  
            });  
        }          
    },
    addEditor : function(jq, field) {  
    if(field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+field+']',$panel);  
                if($field.length){  
                    var $input = $("input",$field);                   
                    $input.removeAttr("readonly");
                }  
            });  
        }  
        return jq;   
    },  
    removeEditor : function(jq, field) {  
    if(field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+field+']',$panel);  
                if($field.length){  
                    var $input = $("input",$field);                   
                    $input.attr("readonly","readonly");
                }  
            });  
        }  
        return jq;   
    },  
    disabled : function(jq, field) {  
    if(field){  
            return jq.each(function(){    
                var $panel = $(this).datagrid("getPanel");  
                var $field = $('td[field='+field+']',$panel);  
                if($field.length){  
                    var $input = $("input",$field);                   
                    $input.attr("disabled","disabled");
                }  
            });  
        }  
        return jq;   
    }    
}); 


2.添加自定義驗證規則

$.extend($.fn.validatebox.defaults.rules, {   
checkCIDR : {// 驗證CIDR  
            validator : function(value) {  
                var reg = /^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))[/]([0-9]|([1-2][0-9])|(3[0-2]))$/ ;  
                return reg.test(value);  
            },  
            message : 'CIDR格式不正確'  
},
portInteger : {// 驗證整數  
            validator : function(value) {  
                return /^[+|-]?[1-9]+\d*$/i.test(value);  
            },  
            message : '請輸入整數'  
        }
}); 


發佈了13 篇原創文章 · 獲贊 5 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章