常用JavaScripts方法

/**
* 判断客户端浏览器类型的变量
*/
var isIE = (navigator.appName == 'Microsoft Internet Explorer');
var isNetscape = (navigator.appName == 'Netscape');

/**
* 清空页面所有输入框的内容,包括文本和密码
*/
function clearInput()
{
    var allInput = document.getElementsByTagName("input");
    for(var i=0; i<allInput.length; i++)
    {
        var tagBody = allInput[i];
        if (tagBody.getAttribute("type") == "text"||tagBody.getAttribute("type") == "password")
        {
            tagBody.value= "";
        }
    }
}

/**
* 检验字符串是否为空
* @param {String} 字符串
* @return {bool} 是否为空
*/
function isEmpty(input)
{
    if( input==null ||  trim(input).length == 0 || input == 'null')
        return true;
    else
        return false;
}

/**
* 检查字符串的长度
* @param {String} 字符串
* @param {Integer} 要比较的长度
* @return {bool} true:变量长度<给出的长度;false:变量长度>=给出的长度
*/
function isShorter(str,reqlength)
{
    if( str.length<reqlength )
        return true;
    else
        return false;
}

/**
* 检查字符串是否是整数
* @param {String} 字符串
* @return {bool} 是否是整数
*/
function isInteger( s )
{
    var isInteger = RegExp(/^[0-9]+$/);
    return ( isInteger.test(s) );
}

/**
* 检查字符串是否是字母
* @param {String} 字符串
* @return {bool} 是否是字母
*/
function isChar( s )
{
    var isInteger = RegExp(/^[a-zA-Z]+$/);
    return ( isInteger.test(s) );
}
/**
* 判断输入变量是否是实数
* @param {String} 要检查的变量值
* @return {bool} 是否为实数
*/
function isDecimal( s )
{
    var isDecimal = RegExp(/^([0-9]+(\.?))?[0-9]+$/);
    return ( isDecimal.test(s) );
}

/**
* 判断输入变量是否是数字或者字母
* @param {String} 要检查的变量值
* @return {bool} 是否为数字或者字母
*/
function isIntChar( s )
{
     var isIntChar = RegExp(/^[a-zA-Z0-9]+$/);
    return ( isIntChar.test(s) );
 }

/**
* 判断输入变量是否是数字或者字母或者特殊字符
* 特殊字符:|_ - * & % $ # @ ! ~ ^ ( )
* @param {String} 要检查的变量值
* @return {bool} 是否为数字或者字母或者特殊字符
*/
function isIntCharSpecial( s )
{
    var isIntCharSpecial = RegExp(/^[a-zA-Z0-9(\|)(\_)(\-)(\*)(\&)(\%)(\$)(\#)(\@)(\!)(\~)(\^)(\()(\))]+$/);
    return ( isIntCharSpecial.test(s) );
}

/**
* 判断输入变量是否包含数字或者字母
* @param {String} 要检查的变量值
* @return {bool} 是否包含数字或者字母
*/
function containIntChar( s )
{
    var containIntChar = RegExp(/[a-zA-Z0-9]+/);
    return ( containIntChar.test(s) );


/**
* 判断输入变量是否包含特殊字符
* 特殊字符:~ ! @ # $ % ^ & * ( ) - _ + = [ ] { } | \ ; : ' " , . / < > ? <
* @param {String} 要检查的变量值
* @return {bool} 是否包含特殊字符
*/
function containSpecial( s )
{
    var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/);
    return ( containSpecial.test(s) );
}

/**
* 检查字符串是否为合法email地址
* @param {String} 字符串
* @return {bool} 是否为合法email地址
*/
function isEmail(s)
{
    var isEmail = RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
    return ( isEmail.test(s) );
}

/**
* 若为null则替换为指定的字符串
* @param {String} 要测试的字符串
* @param {String} 为空时替换的字符串
* @return {String}
*/
function nvl(s,replaceString)
{
    if ( isEmpty(s) )
        return replaceString;
    else
        return s;
}

/**
* 将页面中或指定表格ID的所有checkbox置为选中状态或全不选状态
* @param {bool} choose: true选中;false不选
* @param {string} tableID:要指定的表格ID
*/
function selectAll(choose,tableID)
{
    var allCheck;
    if (arguments.length == 1) {
       allCheck =  document.getElementsByTagName("input");
    }else{
       allCheck =  document.getElementById(tableID).getElementsByTagName("input");
    }
     
    for(var i=0; i<allCheck.length; i++){
        var tagBody = allCheck[i];
        if (tagBody.getAttribute("type") == "checkbox")
        {
            tagBody.checked= choose;
        }
    }
}

/**
* 取得页面中的所有选中的checkbox的id列表
* @return {String} 以'|'分隔的选中id,如果没有选中任何checkbox则返回空串
*/
function getCheckList()
{   
    var checkList = '';
    var allCheck = document.getElementsByTagName("input");
    for(var i=0; i<allCheck.length; i++)
    {
        var tagBody = allCheck[i];
        if (tagBody.getAttribute("type") == "checkbox")
        {
            if ( tagBody.checked && !isEmpty(tagBody.id) )
            {
                checkList += tagBody.id  + '|';
            }
        }
    }
    return checkList;
}


/**
* 取得指定的radio按钮的选中值
* @param {String} radio按钮ID
* @return {String} radio按钮的选中值
*/
function getRadioValue(radioName)
{   
    var radioList = document.getElementsByName(radioName);
    for (var i = 0; i < radioList.length; i++)
    {
        if( radioList[i].checked == true )
        {
            return radioList[i].value;
        }
    }
}

/**
* 检验日期是否符合YYYYMMDD的格式,是否合法
* @param {String} 日期字符串
* @return {bool} 是否是合法日期
*/
/*
function isDate(dateInput) {
    var inputYear = dateInput.substring( 0, 4 );
    var inputMonth = parseInt(dateInput.substring( 4, 6 ))-1;
    var inputDay = dateInput.substring( 6, 8 );
    var dateTest = new Date(inputYear,inputMonth,inputDay);
    var testYear = dateTest.getFullYear();
    var testMonth = dateTest.getMonth();
    var testDay = dateTest.getDate();
    var isValidateDate = (inputYear == testYear && inputMonth == testMonth && inputDay == testDay );
    return isValidateDate;
}*/
function isDate(param) {
    var pattern = /^\d+$/;
    if ( param.length != 8 ) {
        return false;
    }
    if(!pattern.test(param)) {
        return false;
    }
    sYear = param.substring( 0, 4 );
    sMonth = param.substring( 4, 6 );
    sDay = param.substring( 6, 8 );
    if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth )  > 12 ) ) {
        return false;
    }
    var leapYear = ((( sYear % 4 == 0 ) && ( sYear % 100 != 0 )) || ( sYear % 400 == 0 )) ? true : false;
    var monthDay = new Array(12);
    monthDay[0] = 31;
    monthDay[1] = leapYear ? 29 : 28;
    monthDay[2] = 31;
    monthDay[3] = 30;
    monthDay[4] = 31;
    monthDay[5] = 30;
    monthDay[6] = 31;
    monthDay[7] = 31;
    monthDay[8] = 30;
    monthDay[9] = 31;
    monthDay[10] = 30;
    monthDay[11] = 31;
    if ( ( eval( sDay ) < 1 ) || ( eval( sDay )  > monthDay[eval(sMonth)-1] ) ) {
        return false;
    }
    return true;
}

/**
 * 检查日期选择的格式及区间女装品牌排行榜
 */
function checkDate(beginDate,endDate){
    if (! isDate(beginDate)) {
        alert("起始日期不正确");
        beginDate.focus();
        return true;
    }
    if (! isDate(endDate)) {
        alert("终止日期不正确");
        beginDate.focus();
        return true;
    }
    if((beginDate)>(endDate)){
        alert("截止日期应大于或等于起始日期,请重新输入");
        return true;
    }
    if (parseInt(endDate, 10) < parseInt(beginDate, 10) || ! dateInterval(beginDate,endDate, 90)) {
        alert("终止日期应在起始日期之后90天内");
        return true;
    }
}

function isDate1(dateInput){
    var inputYear = dateInput.substring( 0, 4 );
    var inputMonth = parseInt(dateInput.substring( 4, 6 ));
    var dateTest = new Date(inputYear,inputMonth);
    var testYear = dateTest.getFullYear();
    var testMonth = dateTest.getMonth();
    var isValidateDate = (inputYear == testYear && inputMonth == testMonth );
    return isValidateDate;
}

/**
* 去掉字符串前后的空格
* @param {String} 字符串
* @return {String} 去除空格后的字符串
*/
function trim(input) {
    return input.replace(/(^\s*)|(\s*$)/g, "");
}

/**
* 检查时间间隔是否在规定间隔之内
* @param {String} 开始日期
* @param {String} 结束日期
* @param {Integer} 间隔,单位为天
* @return {bool} 是否在规定间隔之内
*/
function dateInterval(startDate,endDate,interval) {
    var date1 = new Date(eval(startDate.substring(0,4)),eval(startDate.substring(4,6))-1,eval(startDate.substring(6,8)));
    var date2 = new Date(eval(endDate.substring(0,4)),eval(endDate.substring(4,6))-1,eval(endDate.substring(6,8)));
    if ( ( date2 - date1 ) / 86400000 > eval(interval) - 1 )
        return false;
    return true;
}

/**
* 控制text域的最大输入长度
* 用法:onblur="checkLength(this,要控制的长度);"
* @param {Object} text对象
* @param {Integer} 要控制的长度
*/
function checkLength(v,l){
    var s = v.value;
    var totalLength = 0;
    var charCode;
    for(i=0;i<s.length;i++)
    {
        charCode = s.charCodeAt(i);
        if (charCode < 0x007f) {
            totalLength ++;
        } else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
            totalLength += 2;
        } else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
            totalLength += 3;
        }
    }
    if( l>=totalLength )
    {
        return true;
    }
    else
    {
        //alert("该输入项插入值过长!最多输入"+l+"个字节");
        v.value = "";
        v.focus();
        return false;
    }
}

function alterButton(acceptBtId,ipt){
    var accBtn = document.getElementById(acceptBtId);
    if(accBtn)
    if(ipt.value.length!=0){
        accBtn.disabled = true;
    }else{
        accBtn.disabled = false;
    }
}

/**
* 控制textarea域的最大输入长度
* 用法:onblur="checkAreaLength(this,要控制的长度);"
* @param {Object} textarea对象
* @param {Integer} 要控制的长度
*/
function checkAreaLength(v,l){
    var s= v.value;
    var totalLength = 0;
    var charCode;
   
    for(i=0;i<s.length;i++)
    {
        charCode = s.charCodeAt(i);
        if (charCode < 0x007f) {
            totalLength ++;
        } else if ((0x0080 <= charCode) && (charCode <= 0x07ff)) {
            totalLength += 2;
        } else if ((0x0800 <= charCode) && (charCode <= 0xffff)) {
            totalLength += 3;
        }
        }
   
    if(totalLength>l){
        //alert("该输入项插入值过长!最多输入"+l+"个字节");     
        v.value = "";
        v.focus();
        return false;
    }
    return true;
}

/**
* 修改指定tag的样式
* @param {String} tag的id
* @param {String} 新的样式
*/
function changeClass(tagId,newClassName)
{
    document.getElementById(tagId).className = newClassName;
}

/**
* 清空一个表的内容
* @param {String} 表体的ID
*/
function cleanTableBody(tbodyName)
{
    var tbody  = document.getElementById(tbodyName);
    var rows=tbody.getElementsByTagName("TR");
    var size = rows.length;
    for(var i=0;i<size;i++)
    {
        tbody.deleteRow(0);
    }
}货运专家

/**
* 更改一个对象的选中状态,可以用于radio和checkBox
* @param {String} 对象的ID
*/
function doCheck(objectID)
{
    var checkObj = document.getElementById(objectID);
    if(checkObj.checked){
        checkObj.checked = false;
    }else{
        checkObj.checked = true;
    }
}

/**
* 将yyyymmddhhmiss方式显示的日期转为中文显示
* @param {String} yyyymmddhhmiss格式的时间
*/
function getChineseDateTime(dateTime)
{
    if( isEmpty(dateTime) || dateTime.length < 14 )
    {
        return dateTime;
    }
    var returnDate = dateTime.substr(0,4)+"年"+dateTime.substr(4,2)+"月"+dateTime.substr(6,2)+"日";
    var returnTime = dateTime.substr(8,2)+":"+dateTime.substr(10,2)+":"+dateTime.substr(12,2);
    return  returnDate+returnTime;
}

/**
* 检验日期是否符合YYYYMM的格式,是否合法
* @param {String} 日期字符串
* @return {bool} 是否是合法日期
*/
function isYearMonth(param) {
    var pattern = /^\d+$/;
    if ( param.length != 6 ) {
        return false;
    }
    if(!pattern.test(param)) {
        return false;
    }
    sYear = param.substring( 0, 4 );
    sMonth = param.substring( 4, 6 );
    if ( ( eval( sMonth ) < 1 ) || ( eval( sMonth )  > 12 ) ) {
        return false;
    }
    return true;
}

/**
* 高亮关键字
* @param {String} 搜索结果字符串
* @param {String} 搜索关键字
* @return {String} 关键字高亮的html字符串
*/
function highLightKeyword(content,key)
{
    var SPAN_BEGIN_TAG = '<span class="highLight">';
    var SPAN_END_TAG = '</span>';
    var htmlString = '';
    var searchStartPos = 0;
    while(true)
    {
        var keyStartPos = content.indexOf(key,searchStartPos);
        if( keyStartPos<0 )
        {
            htmlString += content.substring(searchStartPos);
            return htmlString;
        }
        var keyEndPos = keyStartPos+key.length;
        htmlString += content.substring(searchStartPos,keyStartPos);
        htmlString += SPAN_BEGIN_TAG;
        htmlString += key;
        htmlString += SPAN_END_TAG;
        searchStartPos = keyEndPos;
    }
}

/**
* 获取账号列表中选中的账号
* @param {String} 账号列表的id
* @return {String} 账号
*/
function getAccountNo( selectId )
{
    var selectValue = document.getElementById(selectId).value;
    if ( !isEmpty(selectValue) )
    {
        return (selectValue.split('|'))[0];
    }
    return '';
}

/**
* 获取账号列表中选中的账户名称
* @param {String} 账号列表的id
* @return {String} 账户名称
*/
function getAccountName( selectId )
{
    var selectValue = document.getElementById(selectId).value;
    if ( !isEmpty(selectValue) )
    {
        return (selectValue.split('|'))[1];
    }
    return '';
}

/**
* 获取账号列表中选中的账户开户网点
* @param {String} 账号列表的id
* @return {String} 账户开户网点
*/
function getAccountOpenNode( selectId )
{
    var selectValue = document.getElementById(selectId).value;
    if ( !isEmpty(selectValue) )
    {
        return (selectValue.split('|'))[2];
    }
    return '';
}

/**
* 获取账号列表中选中的账户币种
* @param {String} 账号列表的id
* @return {String} 账户币种
*/
function getAccountCurrency( selectId )
{
    var selectValue = document.getElementById(selectId).value;
    if ( !isEmpty(selectValue) )
    {
        return (selectValue.split('|'))[3];
    }
    return '';
}

/*
 * 显示提示
 */
function showTip(tipId,tipText){
    document.getElementById(tipId).innerHTML = tipText;
    changeClass(tipId,"tip_on");
}
/*
 * 隐藏提示
 */
function hideTip(tipId){
    document.getElementById(tipId).innerHTML = "&nbsp;";
    changeClass(tipId,"tip_off");
}
/*
 * 隐藏所有的提示
 */
function hideAllTip(){
    var divArr = document.getElementsByTagName("div");
    for(i = 0 ; i < divArr.length ; i++){
        var divId = divArr[i].id;
        if(!isEmpty(divId) && divId.substring(divId.length-3,divId.length) == "Tip")
            hideTip(divId);
    }
}

/*
 * 主交易区跳转到指定的action
 * @param {String} action
 */
function linkTo(actionUrl)
{
    window.top.doTranDispatch(actionUrl);
}

/*
 * 根据页面实际高度更新框架大小
 */
function resize()
{
    window.top.sizeChange();
}

/*
 * 根据json数据生成输入表单用的html
 * 示例:getInputHtmlFromJson({name:'mvmouse'},'test') = '<input type="hidden" name="test.name" value="mvmouse"/>'
 * @param {json} jsonInput
 * @param {String} input的name的前缀
 * @return {String} 生成的html
 */
function getInputHtmlFromJson( jsonInput,namePrefix )
{
    var resultHtml = '';
    var prefixString ='<input type="hidden" name="'+namePrefix;
    for (var key in jsonInput )
    {
        var value = jsonInput[key];
        resultHtml += prefixString + key + '" value="'+value+'" />';
    }
    return resultHtml;
}

/*
 * 修改下拉单中内容
 */
function changeSelectItem(selectName,selectValue){
    var options=$(selectName).options;
    for(var i=0;i<options.length;i++){
        var optionValue=options[i].value.split("|");
        if(optionValue[0]==selectValue){
            options[i].selected=true;
            return true;
        }
    }
    return false;
}

/**
 * 验证指定的checkbox是否全部没有选中
 * @param {String} checkBoxName--checkbox对象的Name
 * @return {boolean} 验证结果--true/全部没选中;false/有选中的
 */
function noneChecked(checkBoxName) {
      var checkObj = document.getElementsByName(checkBoxName);
    if (checkObj.length) {
        for (var i = 0;i < checkObj.length;i ++) {
            if (checkObj[i].checked) {
                return false;
            }
        }
        return true;
    } else {
        return ! checkObj.checked;
    }
}

/**
 * 生成一个隐藏域,放到Form提交表单中
 * @param {Form} formObj--提交表单对象
 * @param {String} name--隐藏域的名称
 * @param {String} value--隐藏域的值
 */
function createHiddenField(formObj, name, value) {
    var field = document.createElement("input");
    field.type = "hidden";
    field.name = name;
    field.value = value;
    formObj.appendChild(field);
}
/**
* 设置css换肤
* @param {title}     样式的名称
*/
function setActiveStyleSheet(title) {
    var i,a;
  if (title) {
      for(i=0; (a = document.getElementsByTagName('link')[i]); i++) {
          if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title')) {
            a.disabled = true;
          if(a.getAttribute('title') == title) a.disabled = false;
          }
      }
  }
}

/**
 * 禁用所有button
 */
function disableAllButton()
{
var inputObjs=document.getElementsByTagName("input");
for(i=0;i<inputObjs.length;i++) {
    if(inputObjs[i].type == "button" || inputObjs[i].type == "reset" || inputObjs[i].type == "submit") {
        inputObjs[i].disabled=true;
    }
}

}
/**
 * 启用所有button
 */
function enableAllButton()
{

for(i=0;i<document.all.length;i++) {
    if(document.all(i).type == "button" || document.all(i).type == "reset" || document.all(i).type == "submit") {
        document.all(i).disabled=false;
    }
}

}
/**
 *是否为规范的电话号码
 */
function isTelephone(s) {
    if(isEmpty(s) || !isInteger(s) || s.length > 12) {
        alert('电话号码必须为12位以内的数字!');
        return false;
    }
    return true;
}

/**
 *格式化时间
 */
function formatDate(time) {
    var s="";
    if(time.length>8){
    s=time.substring(0,4);
    s=s+"-";
    s=s+time.substring(4,6);
    s=s+"-";
    s=s+time.substring(6,8);
    s=s+" ";
    s=s+time.substring(8,10);
    s=s+":";
    s=s+time.substring(10,12);
    s=s+":";
    s=s+time.substring(12,14);
    return s;
    }else if(time==""){
        return s;
    }else{
        s=time.substring(0,4);
        s=s+"-";
        s=s+time.substring(4,6);
        s=s+"-";
        s=s+time.substring(6,8);
        return s;
    }
}

posted @ 2011-08-15 09:40  sky7034  阅读(370)  评论(0编辑  收藏  举报
蘑菇街女装 货运专家