国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

超實用的JavaScript表單代碼段

2019-11-20 10:30:16
字體:
來源:轉載
供稿:網友

整理了下比較實用的Javascript表單代碼段,分享給大家供大家參考,具體內容如下

1 多個window.onload方法

  由于onload方法時在頁面加載完成后,自動調用的。因此被廣泛的使用,但是弊端是只能實用onload執行一個方法。下面代碼段,可以保證多個方法在Onload時執行:

 function addLoadEvent(func){  var oldonload = window.onload;  if(typeof window.onload != 'function'){   window.onload = func;  }else{   window.onload = function(){    oldonload();    func();   }  } }

2 正則表達式去空格

str.replace(/^(/s|/u00A0)+|(/s|/u00A0)+$/g,"");

3 利用正則過濾中文

str.replace(/[/u4e00-/u9fa5]/g,"");

4 禁止用戶的拷貝和復制

xxx.oncopy = function(){ return false;}xxx.onpaste = function(){ return false;}

5 限制字符串長度(區分中英文)

  主要思想:

  需要3個數據:1 限制輸入的長度;2 已經輸入了多長; 3 截取多少個字符;

  由于JS里面的截取方法不區分中英文 ,因此

  “哈哈哈”.substr(0,2) ----> 哈哈

  “haha”.substr(0,2) ---> ha

  但是,如果按照編碼一個漢字應該對應2個字符,一個字母對應一個字符。

  因此統計 真實長度 時,應該是 字符的長度 + 漢字的個數

  例如我們限制輸入5個字符:那么輸入“哈哈”后,就只能輸入一個h,不能再輸入漢字了。代碼參考如下,可以運行一下推敲推敲。

 <script type="text/javascript">  var strLen = (function(){//strlLength的功能相同,但是寫法巨麻煩   return function(_str,_model){    _model = _model || "Ch"; //En模式下,中文算作1字符;Ch模式下,中文為2個字符    var _strLen = _str.length; //獲取字符串長度    if(_strLen == 0){     return 0;    }else{     var chinese = _str.match(/[/u4e00-/u9fa5]/g); //匹配中文     return _strLen + (chinese && _model == "Ch"?chinese.length:0); //為什么要&&?    }   }  })();  var strLength = function(_str,_model){   _model = _model || "Ch"; //En模式下,中文算作1字符;Ch模式下,中文為2個字符   var _strLen = _str.length; //獲取字符串長度   if(_strLen == 0){    return 0;   }else{    var chinese = _str.match(/[/u4e00-/u9fa5]/g); //匹配中文    return _strLen + (chinese && _model == "Ch"?chinese.length:0); //為什么要&&?   }  }  var funcRemainingCharacters = function(){   remainingCharacters = document.getElementById("remainingCharacters");   var clearRemainingCharacters = function(_this){    var _value = _this.value;    var _valueLength = _value.length;    var dataLength = _this.getAttribute("data-length");    var dataModel = _this.getAttribute("data-model");    var subLen = dataLength;    if(dataModel == "Ch"){//僅當開啟Ch后,才對重新計算截取的長度     _valueLength = strLength(_value,dataModel);     var vv = _value.match(/[/u4e00-/u9fa5]/g); //當輸入【哈哈】時,vv是["哈","哈"]數組     subLen = dataLength - (!vv?0:vv.length);    }    //_valueLength代表總共的字符長度,比如哈哈哈 為 6    //dataLength是我們定義的限制長度,比如 5    //subLen是計算的截取長度,當輸入家具啊    if(_valueLength > dataLength){     _this.value = _value.substr(0,subLen);    }   }   remainingCharacters.onfocus = function(){    clearRemainingCharacters(this);   }   remainingCharacters.onkeyup = function(){    clearRemainingCharacters(this);   }   remainingCharacters.onblur = function(){    clearRemainingCharacters(this);   }  }  addLoadEvent(funcRemainingCharacters); </script>

全部代碼:

<!doctype html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" > <script type="text/javascript">  function addLoadEvent(func){    var oldonload = window.onload;    if(typeof window.onload != 'function'){     window.onload = func;    }else{     window.onload = function(){      oldonload();      func();     }    }   } </script></head><body> <p class="h3">(支持中英文區分)限制字符串長度</p> <div class="container"> <div class="row">  <div class="col-md-4">   <input type="text" class="form-control" data-length="5" id="remainingCharacters" data-model="Ch">  </div> </div> </div>  <script type="text/javascript">  var strLen = (function(){//strlLength的功能相同,但是寫法巨麻煩   return function(_str,_model){    _model = _model || "Ch"; //En模式下,中文算作1字符;Ch模式下,中文為2個字符    var _strLen = _str.length; //獲取字符串長度    if(_strLen == 0){     return 0;    }else{     var chinese = _str.match(/[/u4e00-/u9fa5]/g); //匹配中文     return _strLen + (chinese && _model == "Ch"?chinese.length:0); //為什么要&&?    }   }  })();  var strLength = function(_str,_model){   _model = _model || "Ch"; //En模式下,中文算作1字符;Ch模式下,中文為2個字符   var _strLen = _str.length; //獲取字符串長度   if(_strLen == 0){    return 0;   }else{    var chinese = _str.match(/[/u4e00-/u9fa5]/g); //匹配中文    return _strLen + (chinese && _model == "Ch"?chinese.length:0); //為什么要&&?   }  }  var funcRemainingCharacters = function(){   remainingCharacters = document.getElementById("remainingCharacters");   var clearRemainingCharacters = function(_this){    var _value = _this.value;    var _valueLength = _value.length;    var dataLength = _this.getAttribute("data-length");    var dataModel = _this.getAttribute("data-model");    var subLen = dataLength;    if(dataModel == "Ch"){//僅當開啟Ch后,才對重新計算截取的長度     _valueLength = strLength(_value,dataModel);     var vv = _value.match(/[/u4e00-/u9fa5]/g); //當輸入【哈哈】時,vv是["哈","哈"]數組     subLen = dataLength - (!vv?0:vv.length);    }    //_valueLength代表總共的字符長度,比如哈哈哈 為 6    //dataLength是我們定義的限制長度,比如 5    //subLen是計算的截取長度,當輸入家具啊    if(_valueLength > dataLength){     _this.value = _value.substr(0,subLen);    }   }   remainingCharacters.onfocus = function(){    clearRemainingCharacters(this);   }   remainingCharacters.onkeyup = function(){    clearRemainingCharacters(this);   }   remainingCharacters.onblur = function(){    clearRemainingCharacters(this);   }  }  addLoadEvent(funcRemainingCharacters); </script> <hr> <!-- **************************************************************************** --></script></body></html>

6 添加CSS函數

var setCSS = function(_this,cssOption){ if(!_this || _this.nodeType === 3 || _this.nodeType === 8 || !_this.style){  return; } for(var cs in cssOption){  _this.style[cs] = cssOption[cs]; } return _this;};

使用時

setCSS(xxx,{ "position":"relative", "top":"0px"});

7 自適應文本框

采用scrollHeight復制給style.height

xxx.style.overflowY = "hidden";xxx.onkeyup = function(){ xxx.style.height = xxx.scrollHeight+"px";};

8 復選框全選、取消和反選

//下面html代碼<label class="checkbox-inline"> <input type="checkbox" name="actionSelects">讀書</label><label class="checkbox-inline"> <input type="checkbox" name="actionSelects">跑步</label><label class="checkbox-inline"> <input type="checkbox" name="actionSelects">游戲</label><label class="checkbox-inline"> <input type="checkbox" name="actionSelects">游泳</label>//下面是js代碼var targets = document.getElementsByName("actionSelects");var targetsLen = targets.length;var i = 0;document.getElementById("allSelect").onclick = function(){ for(i=0;i<targetsLen;i++){  targets[i].checked = true; }}    document.getElementById("cancelAllSelect").onclick = function(){ for(i=0;i<targetsLen;i++){  targets[i].checked = false; }}document.getElementById("_select").onclick = function(){ for(i=0;i<targetsLen;i++){  targets[i].checked = !targets[i].checked; }}

希望本文所述對大家學習javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青龙| 达州市| 云浮市| 普兰店市| 榆林市| 繁峙县| 石台县| 桓仁| 博客| 泗洪县| 稻城县| 闻喜县| 东明县| 达州市| 霍邱县| 闽清县| 阜阳市| 全南县| 饶阳县| 玛纳斯县| 曲靖市| 汤阴县| 合江县| 南阳市| 永泰县| 建始县| 阿拉尔市| 金山区| 黎川县| 社旗县| 丰城市| 赣州市| 连江县| 博乐市| 和硕县| 龙山县| 健康| 榆林市| 望谟县| 拜泉县| 嘉兴市|