javascript util.js

//根据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 = "‘\"><`[email protected]#$%^&\(\)()!¥……??“”‘’*";
            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;
    }  
时间: 2024-11-13 04:19:14

javascript util.js的相关文章

使用util.js处理列表

(util.js文件的链接:http://pan.baidu.com/s/1kUMJNrL 密码:fiqs) 1.前言 此处所指的列表,不仅包括<select-/>元素产生列表框.下拉菜单,还包括<ul-/>和<ol-/>列表.操作这种列表当然可直接通过DOM操作来完成,但通过util.js函数将更加简单. 处理列表相关函数主要由dwr.util对象的removeAllOptions()和addOptions()两个函数写成.其中removeAllOptions()函数

使用util.js处理表格

(util.js文件的链接:http://pan.baidu.com/s/1kUMJNrL 密码:fiqs) 1.前言 dwr.util提供了两个函数帮助我们处理HTML表格操作,这两个函数是addRows()和removeAllRows().其中用于向表格添加行,而removeAllRows用于删除表格中的全部行.两个函数的语法格式如下: 1)        dwr.util.removeAllRows(tableId):该函数只有一个参数,该参数是一个HTML表格元素的id属性值. 2)  

百度地图V2.0实践项目开发工具类bmap.util.js V1.4

/** * 百度地图使用工具类-v2.0(大眾版) * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @email [email protected] * @company KWT.Shenzhen.Inc.com * @notice 有些功能需要加入外部JS库才能使用,另外还需要申请地图JS key . * 申请地址:http://developer.baidu.com/map/apply-key.ht

【javascript】js 获取 url 后的参数值

以前写过一篇类似的博文(提取 url 的搜索字符串中的参数),但是个人觉得使用起来不是很方便,今天抽空重新写了个函数,该函数代码更加简洁. //获取 url 后的参数值 function getUrl(para){ var paraArr = location.search.substring(1).split('&'); var paraObj = {}; for(var i = 0;k = paraArr[i];i++){ paraObj[k.substring(0,k.indexOf('=

javascript实现js脚本的的异步加载

javascript实现js脚本的的异步加载,和图片的异步加载稍有不同,script的异步加载需要借助dom,因此有了局限性 <html> <head> <meta charset="utf-8" /> <title>Javascript</title> <meta http-equiv="X-UA-Compatible" content="IE=7"> </head&

JavaScript之JS实现动画效果

在前面的随笔中介绍了如何用DOM技术修改文档的央样式信息,用JavaScript添加样式信息可以节约我们的时间和精力,但总的来说,CSS仍是完成这类任务的最佳工具.但是有一个应用领域是目前的CSS无能为力的.如果我们想随着时间的变化而不断改变某个元素的样式,则只能用JavaScript.JavaScript能够按照预定的时间间隔重复的调用一个函数,而意味着我们可以随着时间的推移而不断改变某个元素的样式. 动画是样式随着时间变化的完美例子之一.简单的说,动画就是让元素的位置随着时间而不断的发生变化

【javascript】js 判断微信浏览器

上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk.然后就发生了问题,经过测试,发现用微信扫一扫打开的页面点击下载按钮下载不了 apk,后百度之,原来是微信内置浏览器屏蔽了下载链接,后面和需求方沟通,需求改为如果用户是用微信内置浏览器打开的,则提示用户换一个浏览器打开页面,否则下载不了 apk.那么该如何判断用户是否是用微信浏览器呢? 我们知道 js 可以通过 window.navigator.

【JavaScript】JS跨域设置和取Cookie

cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie 的值.本文主要JS怎样读取Cookie以及域的设置. AD: 在Javascript脚本里,一个cookie 实际就是一个字符串属性.当你读取cookie的值时,就得到一个字符串,里面当前WEB页使用的所有cookies的名称和值.每个cookie除了 name名称和value值这两个属性以外,还有四个属性.这些属性是:

初探JavaScript(四)——JS另类的作用域和声明提前

前言:最近恰逢毕业季,千千万万的学生党开始步入社会,告别象牙塔似的学校生活.往往在人生的各个拐点的时候,情感丰富,感触颇深,各种对过去的美好的总结,对未来的展望.与此同时,也让诸多的老“园”工看完这些小年轻的文章后感触良多,不禁也要写上几笔,所以就出来了很多类似“毕业两年小记”.“毕业五年有感”…… 可能就是某篇博文的一句话,某碗心灵鸡汤就拨动了你心里的那根尘封已久的弦,让你情不自禁的点了个赞,还忍不住的要在下面评论区留下自己此刻心潮澎湃的印记. 我今天不是来送鸡汤的,鸡汤虽好,可不要贪杯哦.