echop JS Library

/* $Id : utils.js 5052 2007-02-03 10:30:13Z weberliu $ */

var Browser = new Object();

Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1);

var Utils = new Object();

Utils.htmlEncode = function(text)
{
  return text.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
}

Utils.trim = function( text )
{
  if (typeof(text) == "string")
  {
    return text.replace(/^\s*|\s*$/g, "");
  }
  else
  {
    return text;
  }
}

Utils.isEmpty = function( val )
{
  switch (typeof(val))
  {
    case 'string':
      return Utils.trim(val).length == 0 ? true : false;
      break;
    case 'number':
      return val == 0;
      break;
    case 'object':
      return val == null;
      break;
    case 'array':
      return val.length == 0;
      break;
    default:
      return true;
  }
}

Utils.isNumber = function(val)
{
  var reg = /^[\d|\.|,]+$/;
  return reg.test(val);
}

Utils.isInt = function(val)
{
  if (val == "")
  {
    return false;
  }
  var reg = /\D+/;
  return !reg.test(val);
}

Utils.isEmail = function( email )
{
  var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;

  return reg1.test( email );
}

Utils.isTel = function ( tel )
{
  var reg = /^[\d|\-|\s|\_]+$/; //只允许使用数字-空格等

  return reg.test( tel );
}

Utils.fixEvent = function(e)
{
  var evt = (typeof e == "undefined") ? window.event : e;
  return evt;
}

Utils.srcElement = function(e)
{
  if (typeof e == "undefined") e = window.event;
  var src = document.all ? e.srcElement : e.target;

  return src;
}

Utils.isTime = function(val)
{
  var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/;

  return reg.test(val);
}

Utils.x = function(e)
{ //当前鼠标X坐标
    return Browser.isIE?event.x + document.documentElement.scrollLeft - 2:e.pageX;
}

Utils.y = function(e)
{ //当前鼠标Y坐标
    return Browser.isIE?event.y + document.documentElement.scrollTop - 2:e.pageY;
}

Utils.request = function(url, item)
{
	var sValue=url.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"));
	return sValue?sValue[1]:sValue;
}

Utils.$ = function(name)
{
    return document.getElementById(name);
}

function rowindex(tr)
{
  if (Browser.isIE)
  {
    return tr.rowIndex;
  }
  else
  {
    table = tr.parentNode.parentNode;
    for (i = 0; i < table.rows.length; i ++ )
    {
      if (table.rows[i] == tr)
      {
        return i;
      }
    }
  }
}

document.getCookie = function(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return decodeURIComponent(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

document.setCookie = function(sName, sValue, sExpires)
{
  var sCookie = sName + "=" + encodeURIComponent(sValue);
  if (sExpires != null)
  {
    sCookie += "; expires=" + sExpires;
  }

  document.cookie = sCookie;
}

document.removeCookie = function(sName,sValue)
{
  document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}

function getPosition(o)
{
    var t = o.offsetTop;
    var l = o.offsetLeft;
    while(o = o.offsetParent)
    {
        t += o.offsetTop;
        l += o.offsetLeft;
    }
    var pos = {top:t,left:l};
    return pos;
}

function cleanWhitespace(element)
{
  var element = element;
  for (var i = 0; i < element.childNodes.length; i++) {
   var node = element.childNodes[i];
   if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
     element.removeChild(node);
   }
}

(function($){
	$.messager = function(options){
    	swal({ type:'warning', 
    		allowEscapeKey:true,
    		animation:false, 
    		allowOutsideClick:true, 
    		title: "操作提示", 
    		text: options.msg, 
    		timer: options.time ? options.time : 1500, 
    		showConfirmButton: false 
    	});
    };
    $.KjkFormAjax = function(options){
    	var request = $.ajax({type:"POST",url: options._thisform.attr('action'), data:options._thisform.serialize(), dataType: "json"});
        request.done(function( json ) {
             if( json.result == true){
            	 setTimeout(function(){
            		 window.location.href = options.backurl
            	 },300);
             }else{
            	 $.messager({msg:json.message}) ;
             }
            
	         options.save_btn.attr('disabled',false);
	         options.save_btn.html('保存');
       	});
       	request.fail(function(jqXHR, textStatus) {
           $.messager({msg:jqXHR.mess}) ;
       	});
    };
    
})(jQuery); 




/* *
 * 表单验证
 */
var Validator = function(name){
    this.formName = name;
    this.errMsg = new Array();
    
    /* *
     * 检查用户是否输入了内容
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     */
    this.required = function(controlId, msg){
        var obj = document.forms[this.formName].elements[controlId];
        if (typeof(obj) == "undefined" || Utils.trim(obj.value) == "") {
            this.addErrorMsg(msg);
        }
    };
    
    /* *
     * 检查用户输入的是否为合法的邮件地址
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     * @param :  required    是否必须
     */
    this.isEmail = function(controlId, msg, required){
        var obj = document.forms[this.formName].elements[controlId];
        obj.value = Utils.trim(obj.value);
        
        if (!required && obj.value == '') {
            return;
        }
        
        if (!Utils.isEmail(obj.value)) {
            this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查两个表单元素的值是否相等
     *
     * @param : fstControl   表单元素的ID
     * @param : sndControl   表单元素的ID
     * @param : msg         错误提示信息
     */
    this.eqaul = function(fstControl, sndControl, msg){
        var fstObj = document.forms[this.formName].elements[fstControl];
        var sndObj = document.forms[this.formName].elements[sndControl];
        
        if (fstObj != null && sndObj != null) {
            if (fstObj.value == '' || fstObj.value != sndObj.value) {
                this.addErrorMsg(msg);
            }
        }
    }
    
    /* *
     * 检查前一个表单元素是否大于后一个表单元素
     *
     * @param : fstControl   表单元素的ID
     * @param : sndControl   表单元素的ID
     * @param : msg                错误提示信息
     */
    this.gt = function(fstControl, sndControl, msg){
        var fstObj = document.forms[this.formName].elements[fstControl];
        var sndObj = document.forms[this.formName].elements[sndControl];
        
        if (fstObj != null && sndObj != null) {
            if (Utils.isNumber(fstObj.value) && Utils.isNumber(sndObj.value)) {
                var v1 = parseFloat(fstObj.value) + 0;
                var v2 = parseFloat(sndObj.value) + 0;
            }
            else {
                var v1 = fstObj.value;
                var v2 = sndObj.value;
            }
            
            if (v1 <= v2) 
                this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查输入的内容是否是一个数字
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     * @param :  required    是否必须
     */
    this.isNumber = function(controlId, msg, required){
        var obj = document.forms[this.formName].elements[controlId];
        obj.value = Utils.trim(obj.value);
        
        if (obj.value == '' && !required) {
            return;
        }
        else {
            if (!Utils.isNumber(obj.value)) {
                this.addErrorMsg(msg);
            }
        }
    }
    
    /* *
     * 检查输入的内容是否是一个整数
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     * @param :  required    是否必须
     */
    this.isInt = function(controlId, msg, required){
    
        if (document.forms[this.formName].elements[controlId]) {
            var obj = document.forms[this.formName].elements[controlId];
        }
        else {
            return;
        }
        
        obj.value = Utils.trim(obj.value);
        
        if (obj.value == '' && !required) {
            return;
        }
        else {
            if (!Utils.isInt(obj.value)) 
                this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查输入的内容是否是为空
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     * @param :  required    是否必须
     */
    this.isNullOption = function(controlId, msg){
        var obj = document.forms[this.formName].elements[controlId];
        
        obj.value = Utils.trim(obj.value);
        
        if (obj.value > '0') {
            return;
        }
        else {
            this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查输入的内容是否是"2006-11-12 12:00:00"格式
     *
     * @param :  controlId   表单元素的ID
     * @param :  msg         错误提示信息
     * @param :  required    是否必须
     */
    this.isTime = function(controlId, msg, required){
        var obj = document.forms[this.formName].elements[controlId];
        obj.value = Utils.trim(obj.value);
        
        if (obj.value == '' && !required) {
            return;
        }
        else {
            if (!Utils.isTime(obj.value)) 
                this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查前一个表单元素是否小于后一个表单元素(日期判断)
     *
     * @param : controlIdStart   表单元素的ID
     * @param : controlIdEnd     表单元素的ID
     * @param : msg              错误提示信息
     */
    this.islt = function(controlIdStart, controlIdEnd, msg){
        var start = document.forms[this.formName].elements[controlIdStart];
        var end = document.forms[this.formName].elements[controlIdEnd];
        start.value = Utils.trim(start.value);
        end.value = Utils.trim(end.value);
        
        if (start.value <= end.value) {
            return;
        }
        else {
            this.addErrorMsg(msg);
        }
    }
    
    /* *
     * 检查指定的checkbox是否选定
     *
     * @param :  controlId   表单元素的name
     * @param :  msg         错误提示信息
     */
    this.requiredCheckbox = function(chk, msg){
        var obj = document.forms[this.formName].elements[controlId];
        var checked = false;
        
        for (var i = 0; i < objects.length; i++) {
            if (objects[i].type.toLowerCase() != "checkbox") 
                continue;
            if (objects[i].checked) {
                checked = true;
                break;
            }
        }
        
        if (!checked) 
            this.addErrorMsg(msg);
    }
    
    this.passed = function(){
        if (this.errMsg.length > 0) {
            var msg = "";
            for (i = 0; i < this.errMsg.length; i++) {
                msg += "- " + this.errMsg[i] + "\n";
            }
            
            alert(msg);
            return false;
        }
        else {
            return true;
        }
    }
    
    /* *
     * 增加一个错误信息
     *
     * @param :  str
     */
    this.addErrorMsg = function(str){
        this.errMsg.push(str);
    }
}

/**
 * validate 使用范列
	function validate(){
	    validator = new Validator("theForm");
	    validator.required("ad_name", ad_name_empty);
	    return validator.passed();
	}
 */

/* *
 * 帮助信息的显隐函数
 */
function showNotice(objId){
    var obj = document.getElementById(objId);
    
    if (obj) {
        if (obj.style.display != "block") {
            obj.style.display = "block";
        }
        else {
            obj.style.display = "none";
        }
    }
}

/* *
 * add one option of a select to another select.
 *
 * @author  Chunsheng Wang < wwccss@263.net >
 */
function addItem(src, dst){
    for (var x = 0; x < src.length; x++) {
        var opt = src.options[x];
        if (opt.selected && opt.value != '') {
            var newOpt = opt.cloneNode(true);
            newOpt.className = '';
            newOpt.text = newOpt.innerHTML.replace(/^\s+|\s+$| /g, '');
            dst.appendChild(newOpt);
        }
    }
    
    src.selectedIndex = -1;
}

/* *
 * move one selected option from a select.
 *
 * @author  Chunsheng Wang < wwccss@263.net >
 */
function delItem(ItemList){
    for (var x = ItemList.length - 1; x >= 0; x--) {
        var opt = ItemList.options[x];
        if (opt.selected) {
            ItemList.options[x] = null;
        }
    }
}

/* *
 * join items of an select with ",".
 *
 * @author  Chunsheng Wang < wwccss@263.net >
 */
function joinItem(ItemList){
    var OptionList = new Array();
    for (var i = 0; i < ItemList.length; i++) {
        OptionList[OptionList.length] = ItemList.options[i].text + "|" + ItemList.options[i].value;
    }
    return OptionList.join(",");
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值