码迷,mamicode.com
首页 > 编程语言 > 详细

javascript util.js

时间:2014-10-11 02:49:54      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   java   for   数据   

//根据Id获得页面元素

function $(para) {
    return document.getElementById(para);
}

//创建一个新的元素
function createElement(type, name) {
    if (name) {
        var element = null;
        try {
            element = document.createElement("<" + type + " name=\"" + name + "\">");
        }
        catch (e) {
        }
        if (element == null) {
            element = document.createElement(type);
            element.name = name;
        }
        return element;
    } else {
        return document.createElement(type);
    }
}

//检查是否为数字
function checkNum(obj) {
    var re = /^-?[1-9]*(\.\d*)?$|^-?d^(\.\d*)?$/;
    if (!re.test(obj)) {
        if (isNaN(obj)) {
            return false;
        }
    }
    return true;
}

//去掉字符串首尾的空格
String.prototype.trim = function () {
    var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
};

    /** 
     * 对JSON对象转换为字符串. 
     * @param {json对象} json 
     * @return {json字符串} 
     */  
    function jsonObj2Str(json) {  
            var str = "{";  
            for (prop in json) {  
                    str += prop + ":" + json[prop] + ",";  
            }  
            str = str.substr(0, str.length - 1);  
            str += "}";   
            return str;  
    }  
      
    /** 
     * 将json字符串转换为json对象. 
     * @param {json字符串} jsonstr 
     * @return {json对象} 
     */  
    function jsonStr2Obj(jsonstr) {  
             return eval("("+jsonstr+")");  
    }  
      
    /** 
     * 得到一个元素的left坐标值. 
     * @param {dom对象} obj 
     * @return {位置值} 
     */  
    function getLeft(obj){   
            var offset=e.offsetLeft;   
            if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);   
            return offset;   
    }   
      
    /** 
     * 得到一个元素的绝对位置的top坐标值. 
     * @param {dom对象} obj 
     * @return {位置值} 
     */  
    function getTop(obj){   
            var offset=e.offsetTop;   
            if(e.offsetParent!=null) offset+=getTop(e.offsetParent);   
            return offset;   
    }   
      
    /** 
     * 删除一个字符串的左右空格. 
     * @param {原始字符串} str 
     * @return {删除空格之后的字符串} 
     */  
    function  trim(str)  
    {    
       return  str.replace(/(^\s*)|(\s*$)/g,"");    
    }  
      
    /** 
     * 根据id取出一个元素. 
     * @param {元素id值} str 
     * @return {dom对象} 
     */  
    function $(str) {  
            return document.getElementById(str);  
    }  
      
    /** 
     * 按name获取一个对象. 
     * @param {元素name值} str 
     * @return {根据name返回的第一个对象} 
     */  
    function $byName(str) {  
            var arr = document.getElementsByName(str);  
            if (arr)  
                    return arr[0];  
            else  
                    return null;  
    }  
      
    /***************以下方法和表单验证相关*************************************************/  
    /** 
     * 返回非空字符串,如果有默认值就返回默认字符串. 
     * @param {要进行转换的原字符串} str 
     * @param {默认值} defaultStr 
     * @return {返回结果} 
     */  
    function notNull(str, defaultStr) {  
            if (typeof(str) == "undefined" || str == null || str == ‘‘) {  
                    if (defaultStr)  
                            return defaultStr;  
                    else  
                            return ‘‘;  
            } else {  
                    return str;  
            }  
    }    
      
    /** 
     * 比较两个日期大小. 
     * @param {较小日期的文本框id} smallDate 
     * @param {较大日期的文本框id} bigDate 
     * @param {出错的提示信息} msg 
     */  
    function compareTwoDate(smallDate, bigDate, msg) {  
            var v1 = $(smallDate).value;  
            var v2 = $(bigDate).value;  
            if (v1 >= v2) {  
                    alert(msg);  
                                    v2.focus();  
                    return false;  
            }  
            return true;  
    }  
      
    /** 
     * 比较两个金额大小的方法. 
     * @param {较小的金额} smallNum 
     * @param {较大的金额} bigNum 
     * @param {出错提示信息} msg 
     * @return {Boolean} 
     */  
    function compareTwoNum(smallNum, bigNum, msg) {  
            var v1 = $(smallNum).value;  
            var v2 = $(bigNum).value;   
            if (parseFloat(v1) >= parseFloat(v2)) {  
                    alert(msg);  
                                    v2.focus();  
                    return false;  
            }  
            return true;  
    }  
      
    /** 
     * 检查文本框的长度是否超出指定长度. 
     * @param {文本id} textId 
     * @param {文本框的最大长度} len 
     * @param {文本框描述内容} msg 
     * @return {有错就返回false,否则返回true} 
     */  
    function checkLength(textId, len, msg) {  
            obj = $(textId);  
            str = obj.value;  
            str = str.replace(/[^\x00-\xff]/g, "**");  
            realLen = str.length;  
            if (realLen > len) {  
                    alert("[" + msg + "]" + "长度最大为" + len + "位," + "请重新输入!\n注意:一个汉字占2位。");  
                    obj.focus();  
                    return false;  
            } else  
                    return true;  
    }  
      
    /** 
     * 判断某个文本框不可以为空. 
     * @param {文本框id} textId 
     * @param {文本框描述内容} msg 
     * @return {有错就返回false,否则返回true} 
     */  
    function checkIfEmpty(textId, msg) {  
            var textObj = $(textId);  
            var textValue = textObj.value;  
            if (trim(textValue) == ‘‘) {  
                    alert(‘[‘ + msg + ‘]不得为空!‘);  
                    textObj.focus();  
                    return false;  
            } else {  
                    return true;  
            }  
    }  
      
    /** 
     * 判断指定文本框内容必须为邮件. 
     * @param {文本框id} textId 
     * @param {文本框描述} msg 
     * @return {如果是邮件内容就返回true否则返回false} 
     */  
    function checkIsMail(textId, msg) {  
            var obj = $(textId);  
            if (!_isEmail(obj.value)) {  
                    alert(‘[‘ + msg + ‘]不是合法的邮件地址!‘);  
                    obj.focus();  
                    return false;  
            } else  
                    return true;  
    }  
      
    /** 
     * 验证是不是邮件. 
     * @param {要验证的字符串} strEmail 
     * @return {Boolean} 
     */  
    function _isEmail(strEmail) {  
            //接下来的验证是否有两个以上的‘.’号,有的话就是错的!  
            var first = strEmail.indexOf(‘.‘);    
            if (strEmail.indexOf(‘@‘)== -1) {  
                    return false;  
            }  
            var tempStr = strEmail.substring(first + 1);  
             if (tempStr.indexOf(‘.‘) != -1) {  
                    return false;  
            }  
            if (strEmail  
                            .search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {  
                    return true;  
            } else  
                    return false;  
    }  
      
    /** 
     * 判断某个文本框是否数字. 
     * @param {文本框id} textId 
     * @param {文本框描述内容} msg 
     * @return {Boolean} 
     */  
    function checkIsNum(textId, msg) {  
            obj = $(textId);  
            if (isNaN(obj.value)) {  
                    alert(‘[‘ + msg + ‘]必须为数字。‘);  
                    obj.focus();  
                    return false;  
            } else  
                    return true;  
    }  
      
    /** 
     * 判断某个文本框是否含有非法字符. 
     * @param {文本框的id} textId 
     * @param {文本框描述内容} msg 
     * @return {有错就返回false否则返回true} 
     */  
    function checkIsValid(textId, msg) {  
            obj = $(textId);  
            if (!_isValidString(obj.value, ‘[‘ + msg + ‘]不得含有非法字符。‘)) {  
                    obj.focus();  
                    return false;  
            }  
            return true;  
    }  
      
    /** 
     * 判断是不是合法字符串. 
     * @param {要进行判断的字符串} szStr 
     * @param {文本描述} errMsg  
     * @return {合法则返回true否则返回false} 
     */  
    function _isValidString(szStr,errMsg) {  
            voidChar = "‘\"><`~!@#$%^&\(\)()!¥……??“”‘’*";  
            for (var i = 0; i < voidChar.length; i++) {  
                    aChar = voidChar.substring(i, i + 1);  
                    if (szStr.indexOf(aChar) > -1){  
                            alert(errMsg)  
                            return false;  
                    }  
            }  
            return true;  
    }   
      
    /*************** 以下方法和下拉菜单相关*************************************************/  
    /** 
     * 控制下拉菜单不可以为-1(未选择情况value=-1) 
     * @param {下拉菜单id} selectId 
     * @param {下拉菜单描述内容} msg 
     * @param {下拉菜单的空值对应的value,默认为-1} nullValue 
     * @return {Boolean} 
     */  
    function checkChooseSelect(selectId, msg ,nullValue) {  
            var obj = $(selectId);   
            if (obj.value == notNull(nullValue,‘-1‘)) {  
                    alert(‘[‘ + msg + ‘]必选!‘);  
                    obj.focus();  
                    return false;  
            } else  
                    return true;  
    }  
      
    /** 
     * 得到下拉菜单的显示的文字. 
     * @param {下拉菜单dom对象} selectObj 
     * @return {返回下拉菜单的显示的"文本"} 
     */  
    function getSelectText(selectObj) {  
           return selectObj.options[selectObj.selectedIndex].text;  
    }  
      
    /** 
     * 得到下拉菜单的显示的值. 
     * @param {下拉菜单dom对象} selectObj 
     * @return {得到下拉菜单的显示的"值"} 
     */  
    function getSelectValue(selectObj) {  
            return selectObj.options[selectObj.selectedIndex].value;  
    }  
      
    /** 
     * 设置下拉菜单的选择状态到指定的值. 
     * @param {下拉菜单对象} obj 
     * @param {要选择的值} value 
     */  
    function setSelectValue(obj, value) {  
            /*for (i = obj.options.length - 1; i >= 0; i--) { 
                    if (obj.options[i].value == value) { 
                            obj.options[i].selected = true; 
                            return; 
                    } 
            } 
    */  
          obj.value= value;  
    }  
      
    /** 
     * 根据键值串的内容进行下拉菜单的动态组装 
     * @param {要进行下拉菜单组装的dom对象} obj 
     * @param {键值对用,和;分割,例如‘1,男;2,女;3,未知‘} valAndText 
     */  
    function setSelectContent(obj,valAndText){  
            if(trim(valAndText)==‘‘){  
                    alert(‘没有要进行组装下拉菜单的数据!‘);  
                    return false;                  
            }  
            clearSelect(obj);  
            var keyandvalues = valAndText.split(‘;‘);  
            for(var i=0;i<keyandvalues.length;i++){  
                    var arr = keyandvalues[i].split(‘,‘);  
                    if(arr){  
                            var value =arr[0];   
                            var text =arr[1];   
                            var objOption = new Option(text,value);  
                            obj.add(objOption);  
                    }  
            }  
    }  
      
    /** 
     * 清空下拉菜单里面的内容. 
     * @param {下拉菜单对象} obj 
     */  
    function clearSelect(obj) {   
        for (var i=obj.options.length; i >0; i--) {  
            obj.remove(0);   
        }          
    }   
      
    /*************** 以下方法和多选框相关*************************************************/  
    /** 
     * 返回选中的checks的id组成的字符串,逗号隔开. 
     * @param {checks数组} checks 
     * @return 选择的id组成的字符串 
     */  
    function getCheckedIds(checks){  
            var selectedValue = ‘‘;  
            var len = checks.length;  
            for(var index=0; index<len; index++) {  
            if(checks[index].checked==true) {  
                selectedValue +=  checks[index].value+",";   
            }  
        }  
            if(selectedValue.length>0)  
                    return selectedValue.substring(0,selectedValue.length-1);  
        return selectedValue;  
    }  

 

javascript util.js

标签:style   blog   color   io   os   ar   java   for   数据   

原文地址:http://www.cnblogs.com/fireboss/p/4018137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!