博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ecshop里提出来的js常用函数
阅读量:5080 次
发布时间:2019-06-12

本文共 13860 字,大约阅读时间需要 46 分钟。

目录


ecshop里提出来的js常用函数

Utils.js

/* $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; //判断头前是否为ie浏览器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, '>');}/*** 去除最前、最后空格*/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);}/*** 邮件验证* @param email:邮件* @returns:若是邮件,返回true,反之,返回false!*/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 );}/*** 邮编验证* @param postalCode:邮编* @returns:若是邮编,返回true,反之,返回false!*/Utils.isPostalCode = function isPostalCode(postalCode){   // var reg=/^[1-9]\d{5}(?!\d)$/; var reg=/^[0-9]\d{5}(?!\d)$/;   return reg.test(postalCode);} /*** 电话*/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;}/*** time时间*/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;     }   } }}/*** 保留两位小数* @param {Object} number* @param {Object} decimals*/Utils.roundNumber = function(number,decimals) {var newString;// The new rounded numberdecimals = Number(decimals);if (decimals < 1) {   newString = (Math.round(number)).toString();} else {   var numString = number.toString();   if (numString.lastIndexOf(".") == -1) {// If there is no decimal point       numString += ".";// give it one at the end   }   var cutoff = numString.lastIndexOf(".") + decimals;// The point at which to truncate the number   var d1 = Number(numString.substring(cutoff,cutoff+1));// The value of the last decimal place that we'll end up with   var d2 = Number(numString.substring(cutoff+1,cutoff+2));// The next decimal, after the last one we want   if (d2 >= 5) {// Do we need to round up at all? If not, the string will just be truncated       if (d1 == 9 && cutoff > 0) {// If the last digit is 9, find a new cutoff point           while (cutoff > 0 && (d1 == 9 || isNaN(d1))) {               if (d1 != ".") {                   cutoff -= 1;                   d1 = Number(numString.substring(cutoff,cutoff+1));               } else {                   cutoff -= 1;               }           }       }       d1 += 1;   }   if (d1 == 10) {       numString = numString.substring(0, numString.lastIndexOf("."));       var roundedNum = Number(numString) + 1;       newString = roundedNum.toString() + '.';   } else {       newString = numString.substring(0,cutoff) + d1.toString();   }}if (newString.lastIndexOf(".") == -1) {// Do this again, to the new string   newString += ".";}var decs = (newString.substring(newString.lastIndexOf(".")+1)).length;for(var i=0;i

jquery.listTable.js

/* $Id: listtable.js 14980 2008-10-22 05:01:19Z testyang $ */var listTable = new Object;listTable.query = "query";listTable.filter = new Object;//判断地址里是否有?号,如果没有就从最后一个/截到最后,如果有?就从最后一个/截至?号处listTable.url = location.href.lastIndexOf("?") == -1 ? location.href.substring((location.href.lastIndexOf("/")) + 1) : location.href.substring((location.href.lastIndexOf("/")) + 1, location.href.lastIndexOf("?"));listTable.url += "?is_ajax=1"; /** * 创建一个可编辑区 */listTable.edit = function(obj, act, id){  var tag = obj.firstChild.tagName;  //alert(tag);  if (typeof(tag) != "undefined" && tag.toLowerCase() == "input")  {    return;  }  /* 保存原始的内容 */  var org = obj.innerHTML;  var val = Browser.isIE ? obj.innerText : obj.textContent;  /* 创建一个输入框 */  var txt = document.createElement("INPUT");  txt.value = (val == 'N/A') ? '' : val;  txt.style.width = (obj.offsetWidth + 1) + "px" ;  /* 隐藏对象中的内容,并将输入框加入到对象中 */  obj.innerHTML = "";  obj.appendChild(txt);  txt.focus();  /* 编辑区输入事件处理函数 */  txt.onkeypress = function(e)  {    var evt = Utils.fixEvent(e);    var obj = Utils.srcElement(e);    if (evt.keyCode == 13)    {      obj.blur();      return false;    }    if (evt.keyCode == 27)    {      obj.parentNode.innerHTML = org;    }  }  /* 编辑区失去焦点的处理函数 */  txt.onblur = function(e)  {      $.ajax({           type:"POST",           url:listTable.url,           data:"act="+act+"&val=" + encodeURIComponent(Utils.trim(txt.value)) + "&id=" +id ,           dataType:"json",           async:false,           success:function(res){                   if (res.message)                  {                    alert(res.message);                  }                              obj.innerHTML = (res.error == 0) ? res.content : org;                      }       });       }}/** * 切换状态 */listTable.toggle = function(obj, act, id){  var val = (obj.src.match(/yes.gif/i)) ? 0 : 1;  $.ajax({           type:"POST",           url:listTable.url,           data:"act="+act+"&val=" + val + "&id=" +id ,           dataType:"json",           async:false,           success:function(res){                   if (res.message)                  {                    alert(res.message);                  }                                  if (res.error == 0)                  {                    obj.src = (res.content > 0) ? 'images/yes.gif' : 'images/no.gif';                  }                   } });  }/** * 切换排序方式 */listTable.sort = function(sort_by, sort_order){  var args = "act="+this.query+"&sort_by="+sort_by+"&sort_order=";  if (this.filter.sort_by == sort_by)  {    args += this.filter.sort_order == "DESC" ? "ASC" : "DESC";  }  else  {    args += "DESC";  }  for (var i in this.filter)  {    if (typeof(this.filter[i]) != "function" &&      i != "sort_order" && i != "sort_by" && !Utils.isEmpty(this.filter[i]))    {      args += "&" + i + "=" + this.filter[i];    }  }  this.filter['page_size'] = this.getPageSize(); $.ajax({           type:"POST",           url:listTable.url,           data:args ,           dataType:"json",           success:this.listCallback });}/** * 翻页 */listTable.gotoPage = function(page){  if (page != null) this.filter['page'] = page;  if (this.filter['page'] > this.pageCount) this.filter['page'] = 1;  this.filter['page_size'] = this.getPageSize();  this.loadList();  }/** * 载入列表 */listTable.loadList = function(){  var args = "act="+this.query+"" + this.compileFilter();  $.ajax({           type:"POST",           url:listTable.url,           data:args ,           dataType:"json",           success:this.listCallback });  }/** * 删除列表中的一个记录 */listTable.remove = function(id, cfm, opt){  if (opt == null)  {    opt = "remove";  }  if (confirm(cfm))  {    var args = "act=" + opt + "&id=" + id + this.compileFilter();      $.ajax({           type:"get",           url:listTable.url,           data:args ,           dataType:"json",           success:this.listCallback   });  }}/** * 删除列表中的多个记录 */listTable.remove_batch = function(id,opt){  if (opt == null)  {    opt = "remove_batch";  }  var args = "act=" + opt + "&id=" + id + this.compileFilter();    $.ajax({           type:"get",           url:listTable.url,           data:args ,           dataType:"json",           success:this.listCallback   });}listTable.gotoPageFirst = function(){  if (this.filter.page > 1)  {    listTable.gotoPage(1);  }}listTable.gotoPagePrev = function(){  if (this.filter.page > 1)  {    listTable.gotoPage(this.filter.page - 1);  }}listTable.gotoPageNext = function(){  if (this.filter.page < listTable.pageCount)  {    listTable.gotoPage(parseInt(this.filter.page) + 1);  }}listTable.gotoPageLast = function(){  if (this.filter.page < listTable.pageCount)  {    listTable.gotoPage(listTable.pageCount);  }}listTable.changePageSize = function(e){    var evt = Utils.fixEvent(e);    if (evt.keyCode == 13)    {        listTable.gotoPage();        return false;    };}listTable.listCallback = function(result, txt){    if (result.error > 0)  {    alert(result.message);  }  else  {    try    {      document.getElementById('listDiv').innerHTML = result.content;      if (typeof result.filter == "object")      {        listTable.filter = result.filter;      }      listTable.pageCount = result.page_count;    }    catch (e)    {      alert(e.message);    }  }}listTable.selectAll = function(obj, chk){  if (chk == null)  {    chk = 'checkboxes';  }  var elems = obj.form.getElementsByTagName("INPUT");  for (var i=0; i < elems.length; i++)  {    if (elems[i].name == chk || elems[i].name == chk + "[]")    {      elems[i].checked = obj.checked;    }  }}listTable.compileFilter = function(){  var args = '';  for (var i in this.filter)  {    if (typeof(this.filter[i]) != "function" && typeof(this.filter[i]) != "undefined")    {      args += "&" + i + "=" + encodeURIComponent(this.filter[i]);    }  }  return args;}listTable.getPageSize = function(){  var ps = 15;  pageSize = document.getElementById("pageSize");  if (pageSize)  {    ps = Utils.isInt(pageSize.value) ? pageSize.value : 15;    //document.cookie = "LOS[page_size]=" + ps + ";";    document.cookie = "ECSCP[page_size]=" + ps + ";";  }}listTable.addRow = function(checkFunc){  cleanWhitespace(document.getElementById("listDiv"));  var table = document.getElementById("listDiv").childNodes[0];  var firstRow = table.rows[0];  var newRow = table.insertRow(-1);  newRow.align = "center";  var items = new Object();  for(var i=0; i < firstRow.cells.length;i++) {    var cel = firstRow.cells[i];    var celName = cel.getAttribute("name");    var newCel = newRow.insertCell(-1);    if (!cel.getAttribute("ReadOnly") && cel.getAttribute("Type")=="TextBox")    {      items[celName] = document.createElement("input");      items[celName].type  = "text";      items[celName].style.width = "50px";      items[celName].onkeypress = function(e)      {        var evt = Utils.fixEvent(e);        var obj = Utils.srcElement(e);        if (evt.keyCode == 13)        {          listTable.saveFunc();        }      }      newCel.appendChild(items[celName]);    }    if (cel.getAttribute("Type") == "Button")    {      var saveBtn   = document.createElement("input");      saveBtn.type  = "image";      saveBtn.src = "./images/icon_add.gif";      saveBtn.value = save;      newCel.appendChild(saveBtn);      this.saveFunc = function()      {        if (checkFunc)        {          if (!checkFunc(items))          {            return false;          }        }        var str = "act=add";        for(var key in items)        {          if (typeof(items[key]) != "function")          {            str += "&" + key + "=" + items[key].value;          }        }        $.ajax({           type:"POST",           url:listTable.url,           data:str ,           dataType:"json",           async:false,           success:function(res){                    if (res.error)                    {                      alert(res.message);                      table.deleteRow(table.rows.length-1);                      items = null;                    }                    else                    {                      document.getElementById("listDiv").innerHTML = res.content;                      if (document.getElementById("listDiv").childNodes[0].rows.length < 6)                      {                         listTable.addRow(checkFunc);                      }                      items = null;                    }                     }        });              }      saveBtn.onclick = this.saveFunc;      //var delBtn   = document.createElement("input");      //delBtn.type  = "image";      //delBtn.src = "./images/no.gif";      //delBtn.value = cancel;      //newCel.appendChild(delBtn);    }  }}

使用例子:

demo下载链接:https://pan.baidu.com/s/1ngxDafl-tmCF3wYXF68QGg 提取码:zh5k

例子1:双击span变成input框,失去焦点ajax修改数据.

1441611-20181015144456611-594909408.png
1441611-20181015144550667-470851476.png

    
this is demo
ID SN
1 123123

例子二:双击改状态

1441611-20181015151430691-1233841914.png

转载于:https://www.cnblogs.com/haima/p/9790910.html

你可能感兴趣的文章
Web AppDomain
查看>>
JQuery创建规范插件
查看>>
AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
查看>>
Unity中Text渐变色,和Text间距
查看>>
bzoj1648:奶牛野餐
查看>>
springboot-web进阶(四)——单元测试
查看>>
没有清晰的职业规划,跳槽会很失败
查看>>
[spring mvc][转]<mvc:default-servlet-handler/>的作用
查看>>
Python字符串符号:双引号/单引号用法注解。
查看>>
黑暗城堡 最短路径生成树
查看>>
《软件调试》读书笔记:第13章 硬错误和蓝屏
查看>>
【转】由浅入深探究mysql索引结构原理、性能分析与优化
查看>>
java结合testng,利用XML做数据源的数据驱动示例
查看>>
正确理解ThreadLocal
查看>>
AtCoder Grand Contest 032-B - Balanced Neighbors (构造)
查看>>
第一个iOS程序-电子书
查看>>
关于JavaScript的parseInt
查看>>
php生成验证码函数
查看>>
【Linux】目录配置
查看>>
SHELL 入门
查看>>