`

easyui扩展

阅读更多
根据业务进行的扩展,easyui版本1.4.2

var sy = sy || {};  
  
/** 
 * 扩展validatebox,修改默认值 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.validatebox.defaults, {  
    inputEvents:{  
        focus:function(e){  
            var t=$(e.data.target);  
            window.setTimeout(function(){t.textbox('textbox').select();},100);  
        },click:function(e){  
            var t=$(e.data.target);  
            if(!t.is(":focus")){  
                t.trigger("focus");  
            }  
        }  
    }  
});  
/** 
 * 扩展textbox,修改默认值 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.textbox.defaults, {  
    width:173,  
    onChange:function(p){  
        if(p!=undefined&&typeof p == 'string'){  
            p = p.replace(",",",")+'';//将中文逗号替换成英文逗号  
            if ($(this).textbox('options').prompt.indexOf('*')<0) {//替换特殊字符,根据提示中是否包含*决定是否替换*  
                $(this).textbox("setValue",p.replace(/[<>!=\|\+\^\s\/\\\'\"\?\[\]\(\)\*]/g,''));  
            }else{  
                $(this).textbox("setValue",p.replace(/[<>!=\|\+\^\s\/\\\'\"\?\[\]\(\)]/g,''));  
            }  
        }  
    }  
});  
/** 
 * 更改easyui加载grid时的提示文字 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.datagrid.defaults, {  
    loadMsg : '数据加载中....',  
    title: '',  
    striped: true, //显示斑马线效果  
    rownumbers: true, //如果为true,则显示一个行号列。  
    fit: true, //自适应宽度    
    autoRowHeight: false, //自适应高度  
    rownumbers: true, //如果为true,则显示一个行号列。  
    pagination: true, //分页  
    pageSize: 50,  
    pageList: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500],  
    onBeforeLoad: function(param) {  
        loadProgress($,true);  
    },  
    onLoadSuccess : function(data) {  
        $(this).datagrid('clearChecked');  
        $('.iconImg').attr('src', sy.pixel_0);  
        loadProgress($,false);  
    }  
});  
  
/** 
 * panel关闭时回收内存,主要用于layout使用iframe嵌入网页时的内存泄漏问题 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 *  
 */  
$.extend($.fn.panel.defaults, {  
    loadingMessage : '加载中....',  
    onBeforeDestroy : function() {  
        var frame = $('iframe', this);  
        try {  
            if (frame.length > 0) {  
                for (var i = 0; i < frame.length; i++) {  
                    frame[i].src = '';  
                    frame[i].contentWindow.document.write('');  
                    frame[i].contentWindow.close();  
                }  
                frame.remove();  
                if (navigator.userAgent.indexOf("MSIE") > 0) {// IE特有回收内存方法  
                    try {  
                        CollectGarbage();  
                    } catch (e) {  
                    }  
                }  
            }  
        } catch (e) {  
        }  
    }  
});  
  
/** 
 * 防止panel/window/dialog组件超出浏览器边界 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
sy.onMove = {  
    onMove : function(left, top) {  
        var l = left;  
        var t = top;  
        if (l < 1) {  
            l = 1;  
        }  
        if (t < 1) {  
            t = 1;  
        }  
        var width = parseInt($(this).parent().css('width')) + 14;  
        var height = parseInt($(this).parent().css('height')) + 14;  
        var right = l + width;  
        var buttom = t + height;  
        var browserWidth = $(window).width();  
        var browserHeight = $(window).height();  
        if (right > browserWidth) {  
            l = browserWidth - width;  
        }  
        if (buttom > browserHeight) {  
            t = browserHeight - height;  
        }  
        $(this).parent().css({/* 修正面板位置 */  
            left : l,  
            top : t  
        });  
    }  
};  
$.extend($.fn.dialog.defaults, sy.onMove);  
$.extend($.fn.window.defaults, sy.onMove);  
$.extend($.fn.panel.defaults, sy.onMove);  
  
/** 
 *  
 * 通用错误提示 
 *  
 * 用于datagrid/treegrid/tree/combogrid/combobox/form加载数据出错时的操作 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
sy.onLoadError = {  
    onLoadError : function(XMLHttpRequest) {  
        if (parent.$ && parent.$.messager) {  
            parent.$.messager.progress('close');  
            parent.$.messager.alert('错误', XMLHttpRequest.responseText);  
        } else {  
            $.messager.progress('close');  
            $.messager.alert('错误', XMLHttpRequest.responseText);  
        }  
    }  
};  
$.extend($.fn.datagrid.defaults, sy.onLoadError);  
$.extend($.fn.treegrid.defaults, sy.onLoadError);  
$.extend($.fn.tree.defaults, sy.onLoadError);  
$.extend($.fn.combogrid.defaults, sy.onLoadError);  
$.extend($.fn.combobox.defaults, sy.onLoadError);  
$.extend($.fn.form.defaults, sy.onLoadError);  
  
/** 
 * 扩展combobox在自动补全模式时,检查用户输入的字符是否存在于下拉框中,如果不存在则清空用户输入 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.combobox.defaults, {  
    onShowPanel : function() {  
        var _options = $(this).combobox('options');  
        if (_options.mode == 'remote') {/* 如果是自动补全模式 */  
            var _value = $(this).combobox('textbox').val();  
            var _combobox = $(this);  
            if (_value.length > 0) {  
                $.post(_options.url, {  
                    q : _value  
                }, function(result) {  
                    if (result && result.length > 0) {  
                        _combobox.combobox('loadData', result);  
                    }  
                }, 'json');  
            }  
        }  
    },  
    onHidePanel : function() {  
        var _options = $(this).combobox('options');  
        if(_options.editable&&!_options.multiple){  
            var _data = $(this).combobox('getData');/* 下拉框所有选项 */  
            var _value = $(this).combobox('getValue');/* 用户输入的值 */  
            var _b = false;/* 标识是否在下拉列表中找到了用户输入的字符 */  
            for (var i = 0; i < _data.length; i++) {  
                if (_data[i][_options.valueField] == _value) {  
                    _b=true;  
                    break;  
                }  
            }  
            if(!_b){  
                $(this).combobox('setValue', undefined);  
            }     
        }  
    },  
    panelHeight:200,  
    showDataSize:20,  
    editable:true,//可编辑  
    validate:true,//验证输入的值  
    formatter:function(record){  
        var opts = $(this).combobox('options');  
        return record[opts.valueField]+'-'+record[opts.textField];  
    },  
    filter:function(q, row){//当输入数据时会调用该方法进行筛选过滤  
        var opts = $(this).combobox('options');  
        return row[opts.valueField].indexOf(q)>=0||row[opts.textField].indexOf(q)>=0;  
    },  
    onClickIcon:function(){//使用户点击combobox下拉按钮时也能执行过滤  
        var opts = $(this).combobox('options');  
        if(opts.editable){  
            var q=$(this).combobox("getValues");  
            $(this).combobox("options").keyHandler.query.call(this,q==undefined?"":q);  
            $(this).combobox("validate");  
        }  
    },  
    width:173  
});  
/** 
 * 扩展numberbox,修改默认值 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.numberbox.defaults, {  
    min:0,  
    width:173  
});  
/** 
 * 扩展combogrid在自动补全模式时,检查用户输入的字符是否存在于下拉框中,如果不存在则清空用户输入 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.combogrid.defaults, {  
    onShowPanel : function() {  
        var _options = $(this).combogrid('options');  
        if (_options.mode == 'remote') {/* 如果是自动补全模式 */  
            var _value = $(this).combogrid('textbox').val();  
            if (_value.length > 0) {  
                $(this).combogrid('grid').datagrid("load", {  
                    q : _value  
                });  
            }  
        }  
    },  
    onHidePanel : function() {  
        var _options = $(this).combogrid('options');  
        if (_options.mode == 'remote') {/* 如果是自动补全模式 */  
            var _data = $(this).combogrid('grid').datagrid('getData').rows;/* 下拉框所有选项 */  
            var _value = $(this).combogrid('getValue');/* 用户输入的值 */  
            var _b = false;/* 标识是否在下拉列表中找到了用户输入的字符 */  
            for (var i = 0; i < _data.length; i++) {  
                if (_data[i][_options.idField] == _value) {  
                    _b = true;  
                }  
            }  
            if (!_b) {/* 如果在下拉列表中没找到用户输入的字符 */  
                $(this).combogrid('setValue', '');  
            }  
        }  
    }  
});  
  
/** 
 * 扩展validatebox,添加新的验证功能 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.validatebox.defaults.rules,  
        {  
            eqPwd : {/* 验证两次密码是否一致功能 */  
                validator : function(value, param) {  
                    return value == $(param[0]).val();  
                },  
                message : '密码不一致!'  
            },  
            moreThanDate : {/* 验证开始时间是否小于结束时间,应用于结束时间标签,结束时间允许为空 */  
                validator : function(value, param) {  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    if (param == undefined || param.length == 0) {  
                        return false;  
                    }  
                    var sDate = new Date($(param[0]).datetimebox('getValue'))  
                            .getTime();  
                    var eDate = new Date(value).getTime();  
                    return eDate > sDate;  
                },  
                message : '开始时间必须小于结束时间!'  
            },  
            multiple : {/* 验证数字是参数N的倍数 */  
                validator : function(value, param) {  
                    if (param == undefined || param.length == 0) {  
                        return true;  
                    }  
                    if (value != undefined) {  
                        return value % param[0] == 0;  
                    }  
                    return false;  
                },  
                message : '必须是 {0}的倍数!'  
            },  
            mobile : {/* 验证手机号 */  
                validator : function(value) {  
                    if (value == undefined || value.length == 0) {  
                        return true;  
                    }  
                    return value.match(/^1\d{10}$/);  
                },  
                message : '必须为11位手机号,手机号可不填!'  
            },  
            phone : {/* 验证座机号格式 */  
                validator : function(value) {  
                    if (value == undefined || value.length == 0) {  
                        return true;  
                    }  
                    return value.match(/^(0\d{2,3}\-)?([2-9]\d{6,7})$/);  
                },  
                message : '必须为有效的座机号,可不填!'  
            },  
            email : {/* 验证email格式 */  
                validator : function(value) {  
                    if (value == undefined || value.length == 0) {  
                        return true;  
                    }  
                    return value.match(/^.+@.+\..+$/);  
                },  
                message : '必须为有效的邮箱号,邮箱号可不填!'  
            },  
            decimal : {/* 验证小数 :param:整数位长度,小数位长度,允许为空 */  
                validator : function(value, param) {  
                    if (param == undefined || param.length == 0) {  
                        return true;  
                    }  
                    var message = "";  
                    var regs = "^";  
                    if (param[0] == 0) {  
                        regs += "\\d+";  
                        message = "必须输入整数位,";  
                    } else {  
                        message = "整数位不能大于" + param[0] + "位,";  
                        regs += "\\d{1," + param[0] + "}";  
                    }  
                    if (param[1] == 0) {  
                        regs += "(\\.\\d+)?$/";  
                    } else {  
                        regs += "(\\.\\d{1," + param[1] + "})?$";  
                        message += "小数位不能大于" + param[1] + "位,";  
                    }  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    $.fn.validatebox.defaults.rules.decimal.message = message;  
                    var reg = new RegExp(regs);  
                    return reg.test(value);  
                }  
            },  
            integer : {/* 验证整数,param:整数位长度,允许为空 */  
                validator : function(value, param) {  
                    if (param == undefined || param.length == 0) {  
                        return true;  
                    }  
                    var message = "";  
                    var regs = "^";  
                    if (param[0] == 0) {  
                        regs += "\\d+$";  
                    } else {  
                        regs += "\\d{1," + param[0] + "}$";  
                        message = "长度不能大于" + param[0] + "位,";  
                    }  
                    if (param[1]) {  
                        if (value == undefined || value == "") {  
                            return true;  
                        }  
                        ;  
                        message += "可不填!";  
                    } else {  
                        message += "必填!";  
                    }  
                    $.fn.validatebox.defaults.rules.integer.message = message;  
                    var reg = new RegExp(regs);  
                    return reg.test(value);  
                }  
            },  
            maxLength:{/* 验证最大长度,param:[0]最大长度,[1]组合value的值,允许为空 */  
                validator : function(value, param) {  
                    if (value == undefined || value.length == 0) {  
                        return true;  
                    }  
                    return (value+''+(param[1]==undefined?'':param[1])).length<=param[0];  
                },  
                message : '长度最大为{0}位!'  
            },  
            length:{/* 验证最大长度,param:[0]长度,允许为空 */  
                validator : function(value, param) {  
                    if (value == undefined || value.length == 0||param==undefined||param.length==0) {  
                        return true;  
                    }  
                    var message = '长度应为';  
                    for (var i = param.length - 1; i >= 0; i--) {  
                        var p = param[i];  
                        if(value.length===p){  
                            return true;  
                        }else{  
                            message+=p+',';  
                        }  
                    };  
                    message = message.substr(0,message.length-1)+'位';  
                    $.fn.validatebox.defaults.rules.length.message = message;  
                    return false;  
                }  
            },  
            lengthThan:{/* 验证最大长度,param:[0]最小长度,[1]最大长度,允许为空 */  
                validator : function(value, param) {  
                    if (value == undefined || value.length == 0||param==undefined||param.length<2) {  
                        return true;  
                    }  
                    return value.length>=param[0]&&value.length<=param[1];  
                },  
                message : '长度应为{0}-{1}位!'  
            },  
            moreThanOrEqualsNumber:{/*大于等于参数,参数可直接传值或传递numberbox的id*/  
                validator : function(value, param) {  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    if (param == undefined || param.length == 0) {  
                        return false;  
                    }  
  
                    if(typeof param[0] == 'number'){  
                        return value >= param[0];  
                    }else{  
                        var s = $(param[0]).numberbox('getValue');  
                        return value >= s;  
                    }  
                },  
                message : '必须大于等于{0}!'  
            },  
            moreThanNumber:{/*大于参数,参数可直接传值或传递numberbox的id*/  
                validator : function(value, param) {  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    if (param == undefined || param.length == 0) {  
                        return false;  
                    }  
  
                    if(typeof param[0] == 'number'){  
                        return value > param[0];  
                    }else{  
                        var s = $(param[0]).numberbox('getValue');  
                        return value > s;  
                    }  
                },  
                message : '必须大于{0}!'  
            },  
            lessThanNumber:{  
                /*小于参数,参数可直接传值或传递numberbox的id*/  
                validator : function(value, param) {  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    if (param == undefined || param.length == 0) {  
                        return false;  
                    }  
  
                    if(typeof param[0] == 'number'){  
                        return value < param[0];  
                    }else{  
                        var s = $(param[0]).numberbox('getValue');  
                        return value < s;  
                    }  
                },  
                message : '必须小于{0}!'  
            },  
            lessThanOrEqualsNumber:{  
                /*小于参数,参数可直接传值或传递numberbox的id*/  
                validator : function(value, param) {  
                    if (value == undefined || value == "") {  
                        return true;  
                    }  
                    if (param == undefined || param.length == 0) {  
                        return false;  
                    }  
  
                    if(typeof param[0] == 'number'){  
                        return value <= param[0];  
                    }else{  
                        var s = $(param[0]).numberbox('getValue');  
                        return value <= s;  
                    }  
                },  
                message : '必须小于等于{0}!'  
            }  
        });  
  
/** 
 * 扩展tree和combotree,使其支持平滑数据格式 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 *  
 */  
sy.loadFilter = {  
    loadFilter : function(data, parent) {  
        var opt = $(this).data().tree.options;  
        var idField, textField, parentField;  
        if (opt.parentField) {  
            idField = opt.idField || 'id';  
            textField = opt.textField || 'text';  
            parentField = opt.parentField || 'pid';  
            var i, l, treeData = [], tmpMap = [];  
            for (i = 0, l = data.length; i < l; i++) {  
                tmpMap[data[i][idField]] = data[i];  
            }  
            for (i = 0, l = data.length; i < l; i++) {  
                if (tmpMap[data[i][parentField]]  
                        && data[i][idField] != data[i][parentField]) {  
                    if (!tmpMap[data[i][parentField]]['children'])  
                        tmpMap[data[i][parentField]]['children'] = [];  
                    data[i]['text'] = data[i][textField];  
                    tmpMap[data[i][parentField]]['children'].push(data[i]);  
                } else {  
                    data[i]['text'] = data[i][textField];  
                    treeData.push(data[i]);  
                }  
            }  
            return treeData;  
        }  
        return data;  
    }  
};  
$.extend($.fn.combotree.defaults, sy.loadFilter);  
$.extend($.fn.tree.defaults, sy.loadFilter);  
  
/** 
 * 扩展treegrid,使其支持平滑数据格式 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 *  
 */  
$.extend($.fn.treegrid.defaults, {  
    loadFilter : function(data, parentId) {  
        var opt = $(this).data().treegrid.options;  
        var idField, treeField, parentField;  
        if (opt.parentField) {  
            idField = opt.idField || 'id';  
            treeField = opt.textField || 'text';  
            parentField = opt.parentField || 'pid';  
            var i, l, treeData = [], tmpMap = [];  
            for (i = 0, l = data.length; i < l; i++) {  
                tmpMap[data[i][idField]] = data[i];  
            }  
            for (i = 0, l = data.length; i < l; i++) {  
                if (tmpMap[data[i][parentField]]  
                        && data[i][idField] != data[i][parentField]) {  
                    if (!tmpMap[data[i][parentField]]['children'])  
                        tmpMap[data[i][parentField]]['children'] = [];  
                    data[i]['text'] = data[i][treeField];  
                    tmpMap[data[i][parentField]]['children'].push(data[i]);  
                } else {  
                    data[i]['text'] = data[i][treeField];  
                    treeData.push(data[i]);  
                }  
            }  
            return treeData;  
        }  
        return data;  
    }  
});  
  
/** 
 * 创建一个模式化的dialog 
 *  
 * @author Ray 
 *  
 * @requires jQuery,EasyUI 
 *  
 */  
sy.modalDialog = function(options) {  
    var opts = $.extend({  
        title : ' ',  
        width : 640,  
        height : 480,  
        modal : true,  
        onClose : function() {  
            var that = this;  
            setTimeout(function() {  
                $(that).dialog('destroy');  
            }, 100 );  
        }  
    }, options);  
    // opts.modal = true;// 强制此dialog为模式化,无视传递过来的modal参数  
    if (options.url) {  
        opts.content = '<iframe id="" src="'  
                + options.url  
                + '" allowTransparency="true" scrolling="auto" width="100%" height="98%" frameBorder="0" name=""></iframe>';  
    }  
    return $('<div/>').dialog(opts);  
};  
  
/** 
 * 更换主题 
 *  
 * @author Ray 
 * @requires jQuery,EasyUI 
 * @param themeName 
 */  
sy.changeTheme = function(themeName) {  
    var $easyuiTheme = $('#easyuiTheme');  
    var url = $easyuiTheme.attr('href');  
    var href = url.substring(0, url.indexOf('themes')) + 'themes/' + themeName  
            + '/easyui.css';  
    $easyuiTheme.attr('href', href);  
  
    var $iframe = $('iframe');  
    if ($iframe.length > 0) {  
        for (var i = 0; i < $iframe.length; i++) {  
            var ifr = $iframe[i];  
            try {  
                $(ifr).contents().find('#easyuiTheme').attr('href', href);  
            } catch (e) {  
                try {  
                    ifr.contentWindow.document.getElementById('easyuiTheme').href = href;  
                } catch (e) {  
                }  
            }  
        }  
    }  
  
    $.cookie('easyuiTheme', themeName, {  
        expires : 7  
    });  
};  
  
/** 
 * 滚动条 
 *  
 * @author Ray 
 * @requires jQuery,EasyUI 
 */  
sy.progressBar = function(options) {  
    if (typeof options == 'string') {  
        if (options == 'close') {  
            $('#syProgressBarDiv').dialog('destroy');  
        }  
    } else {  
        if ($('#syProgressBarDiv').length < 1) {  
            var opts = $  
                    .extend(  
                            {  
                                title : ' ',  
                                closable : false,  
                                width : 300,  
                                height : 60,  
                                modal : true,  
                                content : '<div id="syProgressBar" class="easyui-progressbar" data-options="value:0"></div>'  
                            }, options);  
            $('<div id="syProgressBarDiv"/>').dialog(opts);  
            $.parser.parse('#syProgressBarDiv');  
        } else {  
            $('#syProgressBarDiv').dialog('open');  
        }  
        if (options.value) {  
            $('#syProgressBar').progressbar('setValue', options.value);  
        }  
    }  
};  
  
/** 
 * 支持datetimebox 
 *  
 * @author 雷勇 
 * @requires jQuery,EasyUI 
 */  
$.extend($.fn.datagrid.defaults.editors, {  
    datetimebox : {  
        init : function(container, options) {  
            var input = $('<input type="text" class="easyui-datetimebox">')  
                    .appendTo(container);  
            // 编辑框延迟加载  
            window.setTimeout(function() {  
                input.datetimebox($.extend({  
                    editable : false  
                }, options));  
            }, 10);  
            // input.datetimebox($.extend({ editable: false }, options));  
            return input;  
        },  
        getValue : function(target) {  
            return $(target).datetimebox('getValue');  
        },  
        setValue : function(target, value) {  
            $(target).val(value);  
            window.setTimeout(function() {  
                $(target).datetimebox('setValue', value);  
            }, 150);  
        },  
        resize : function(target, width) {  
            var input = $(target);  
            if ($.boxModel == true) {  
                input.width(width - (input.outerWidth() - input.width()));  
            } else {  
                input.width(width);  
            }  
        }  
    }  
});  
/** 
 * 支持添加删除编辑器 
 */  
$.extend($.fn.datagrid.methods, {  
    addEditor : function(jq, param) {  
        if (param instanceof Array) {  
            $.each(param, function(index, item) {  
                var e = $(jq).datagrid('getColumnOption', item.field);  
                e.editor = item.editor;  
            });  
        } else {  
            var e = $(jq).datagrid('getColumnOption', param.field);  
            e.editor = param.editor;  
        }  
    },  
    removeEditor : function(jq, param) {  
        if (param instanceof Array) {  
            $.each(param, function(index, item) {  
                var e = $(jq).datagrid('getColumnOption', item);  
                e.editor = {};  
            });  
        } else {  
            var e = $(jq).datagrid('getColumnOption', param);  
            e.editor = {};  
        }  
    }  
});  
function addChildMenu(dataset, treegrid) {  
    var ds = dataset;  
    var tree = treegrid;  
    var treeColumn = tree.getTreeColumn();  
    var currentNode = tree.getCurrentNode();  
    if (currentNode != null) {  
        logicCheck(currentNode);  
        var record = ds.insertRecord();  
        var node = new RecordTreeNode(record, new SimpleTreeLevel(treeColumn));  
        node.setHasChild(false);  
        currentNode.addNode(node);  
        tree.expandNode(currentNode);  
    } else {  
        var record = ds.insertRecord();  
        var node = new RecordTreeNode(record, new SimpleTreeLevel(treeColumn));  
        node.setHasChild(false);  
        tree.addRootNode(node);  
    }  
    tree.refresh();  
}  
  
function deleteMenu(dataset, treegird) {  
    var ds = dataset;  
    var tree = treegird;  
    var currentNode = tree.getCurrentNode();  
    if (currentNode != null) {  
        var currentRecord = currentNode.getRecord();  
        ds.deleteRecord(currentRecord);  
        deleteChildMenu(ds, currentNode);  
    }  
    tree.refresh();  
}  
  
function deleteChildMenu(dataset, parentMenuNode) {  
    var iter = parentMenuNode.getNodes().iterator();  
    while (iter.hasNext()) {  
        var node = iter.next();  
        var record = node.getRecord();  
        dataset.deleteRecord(record);  
        deleteChildMenu(dataset, node);  
    }  
}  
  
/** 
 * 该方法主要用来检查是否可以在当前节点下添加新的节点 
 */  
function logicCheck(currentNode) {  
    var currentRecord = currentNode.getRecord();  
    var state = currentRecord.getState();  
    if (state == "new" || state == "insert") {  
        alert("该节点不是有效节点。");  
        throw new AbortException();  
    }  
}  
/** 
 * 为所有输入类型添加获取焦点时自动选中 
 */  
$.extend($.fn.validatebox.defaults.inputEvents, {  
    focus:function(e){  
        var t=$(e.data.target);  
        window.setTimeout(function(){  
            if(t.validatebox('textbox').filter(":focus").length==1){  
                t.validatebox('textbox').select();  
            }  
        },100);  
    }  
});  
$.extend($.fn.textbox.defaults.inputEvents, {  
    focus:function(e){  
        var t=$(e.data.target);  
        if (t.textbox('options').editable) {  
            window.setTimeout(function(){  
                if(t.textbox('textbox').filter(":focus").length==1){  
                    t.textbox('textbox').select();  
                }  
            },100);  
        };  
    }  
});  
$.extend($.fn.numberbox.defaults.inputEvents, {  
    focus:function(e){  
        var t=$(e.data.target);  
        if (t.numberbox('options').editable) {  
            window.setTimeout(function(){  
                if(t.numberbox('textbox').filter(":focus").length==1){  
                    t.numberbox('textbox').select();  
                }  
            },100);  
        };  
    }  
});  
$.extend($.fn.combobox.defaults.inputEvents, {  
    focus:function(e){  
        var t=$(e.data.target);  
        if (t.context.className.indexOf('easyui-date')&&t.combobox('options').editable) {  
            window.setTimeout(function(){  
                if(t.combobox('textbox').filter(":focus").length==1){  
                    t.combobox('textbox').select();  
                }  
            },100);  
        };  
    }  
}); 
分享到:
评论

相关推荐

    easyui 扩展 带单位输入框

    本文将深入探讨如何在EasyUI中扩展一个带有单位输入框的自定义插件,这在处理需要指定单位(如长度、重量等)的数据输入场景时非常有用。 ### 标题解析:“easyui 扩展 带单位输入框” 标题明确了本文的主题是关于...

    easyui扩展版本的插件

    在"easyui扩展版本的插件"中,我们看到的是对原生EasyUI组件的进一步增强和定制,以满足更具体的需求。 1. **日期组件扩展**:原生的EasyUI日期选择器通常提供了基本的日历功能,但扩展版本可能包含了更多的自定义...

    EasyUI扩展图标样式

    "EasyUI 扩展图标样式" 是一种针对 EasyUI 原有图标集的增强,旨在提供更多的图标选项,以适应更多样化的界面设计。这个扩展仅仅关注图标本身,不涉及其他的界面风格,确保了与现有 EasyUI 设计的兼容性。开发者可以...

    EasyUI 扩展ICON图标

    "EasyUI 扩展ICON图标" 提供了一个解决方案,它增加了1775个额外的图标,大大丰富了EasyUI的图标库。这些图标可能是矢量图形,可以在不同分辨率和尺寸下保持清晰,同时涵盖了各种常见的功能类别,如导航、操作、状态...

    jquery easyui扩展js验证

    easyui扩展的js验证,是对easyUI没有的验证做的补充扩展,好用方便

    Easyui的扩展图标

    10. **文档和示例**:使用Easyui扩展图标时,应参考其官方文档或提供的示例代码,以便更好地理解和应用这些图标。 总之,Easyui的扩展图标为开发者提供了更多的设计元素,使得构建用户界面更加灵活,同时也需要注意...

    EasyUI扩展方法 + jutil.js

    从描述中的“总包”来看,这个压缩包可能包含了一系列与EasyUI扩展和jutil.js相关的资源,如CSS样式文件、JavaScript脚本、示例代码或者文档,供开发者参考和使用。通过提供的博文链接(已省略),可以获取更多关于...

    EasyUI 扩展小图标Icon带CSS样式

    "EasyUI 扩展小图标Icon带CSS样式" 是为了应对EasyUI内置图标不足和美观度不高的问题而创建的资源包。这个扩展包包含了一套更全面、更美观的图标库,适用于各种项目需求,可以直接整合到基于EasyUI的项目中使用,极...

    jQuery EasyUI 扩展(tip和form)

    在"jQuery EasyUI 扩展(tip和form)"这个主题中,我们将深入探讨如何利用 EasyUI 的扩展功能来优化提示(tip)和表单(form)的交互体验。 首先,让我们谈谈“Tip”。在 Web 开发中,提示信息通常用于向用户提供即时...

    jquery easyui 扩展图标样式下载(514个)

    针对这种情况,标题提到的 "jquery easyui 扩展图标样式下载(514个)" 是一个资源包,为EasyUI用户提供了额外的514个图标,以扩充其图标库。 这个资源包包含两部分主要内容:图标图片文件和样式文件。图标图片文件...

    easyui 扩展layout的方法,支持动态添加删除块

    ### easyUI扩展Layout方法以支持动态添加与删除区块 #### 概述 easyUI是一款基于jQuery的用户界面库,它提供了丰富的UI组件和强大的布局管理功能。本文将详细介绍如何通过扩展easyUI的`layout`方法来实现动态添加...

    JQuery easyUI扩展验证机制的正则表达式

    ### JQuery easyUI扩展验证机制的正则表达式详解 #### 一、概述 在Web开发过程中,表单数据的有效性和准确性对于用户体验至关重要。为了确保用户输入的数据符合预期的格式,前端验证成为了一项必不可少的任务。...

    千余个网站实用按钮图标附带easyui扩展图标样式文件

    本文将深入探讨“千余个网站实用按钮图标附带easyui扩展图标样式文件”这个主题,包括其中包含的资源以及如何在项目中有效地使用它们。 首先,我们要了解EasyUI。EasyUI是一个基于JavaScript和jQuery的轻量级框架,...

    easyUI扩展图标

    EasyUI扩展图标是一套丰富的图形资源,专为增强和扩展EasyUI框架的视觉表现而设计。EasyUI是一款基于JavaScript和CSS的轻量级前端开发框架,它简化了网页用户界面的构建过程,提供了诸如对话框、菜单、表格、布局等...

    EasyUi图标扩展样式大全(1700个)

    标题提到的“EasyUi图标扩展样式大全(1700个)”是一个专门针对EasyUi的图标库增强方案,旨在解决EasyUI默认图标样式不足和美观度不高的问题。 这个扩展样式大全包含了1700个图标,大大增加了EasyUI在设计界面时的...

    EasyUi图标扩展样式.7z

    EasyUI图标扩展样式是针对EasyUI框架的一种增强,旨在提供更多的视觉元素,以满足开发者在构建用户界面时对个性化和多样性的需求。EasyUI是一个基于jQuery的轻量级且易于使用的前端开发框架,它提供了丰富的组件,如...

    easyui扩展图标

    easyui扩展图标

    Easyui扩展datagrid-dnd.js,实现拖动grd的必要文件

    Easyui的扩展datagrid-dnd.js,实现拖动datagrid行到其他数据表格的必要文件

Global site tag (gtag.js) - Google Analytics