Ich habe einige weitere praktische Javascript-Formularcode-Schnipsel zusammengestellt und sie Ihnen als Referenz zur Verfügung gestellt. Die spezifischen Inhalte sind wie folgt
1 Mehrere window.onload-Methoden
Da die Onload-Methode automatisch aufgerufen wird, nachdem die Seite geladen wurde. Daher ist es weit verbreitet, der Nachteil besteht jedoch darin, dass mit Onload nur eine Methode ausgeführt werden kann. Mit dem folgenden Codeausschnitt kann sichergestellt werden, dass beim Onload mehrere Methoden ausgeführt werden:
function addLoadEvent(func){ var oldonload = window.onload; if(typeof window.onload != 'function'){ window.onload = func; }else{ window.onload = function(){ oldonload(); func(); } } }
2 Regulärer Ausdruck zum Entfernen von Leerzeichen
str.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g,"");
3 Verwenden Sie reguläre Regeln, um Chinesisch zu filtern
str.replace(/[\u4e00-\u9fa5]/g,"");
4 Das Kopieren und Vervielfältigen durch den Benutzer ist verboten
xxx.oncopy = function(){ return false; } xxx.onpaste = function(){ return false; }
5 Zeichenfolgenlänge begrenzen (Unterschied zwischen Chinesisch und Englisch)
Hauptidee:
Erfordert 3 Daten: 1. Begrenzen Sie die Länge der Eingabe; 3. Wie viele Zeichen werden abgefangen;
Da die Abfangmethode in JS nicht zwischen Chinesisch und Englisch unterscheidet, also"Hahaha".substr(0,2) ----> Haha
„haha“.substr(0,2) ---> ha
Gemäß der Kodierung sollte jedoch ein chinesisches Zeichen zwei Zeichen und ein Buchstabe einem Zeichen entsprechen.
Daher sollte die tatsächliche Länge aus der Länge des Zeichens + der Anzahl der chinesischen Schriftzeichen berechnet werden
Beispielsweise beschränken wir die Eingabe auf 5 Zeichen: Nach der Eingabe von „haha“ können Sie dann nur noch ein h eingeben und es können keine weiteren chinesischen Zeichen eingegeben werden. Die Codereferenz lautet wie folgt. Sie können sie zur weiteren Überprüfung ausführen.
<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>
(支持中英文区分)限制字符串长度
<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>
6 CSS-Funktion hinzufügen
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 adaptive Textfelder
ScrollHeight nach style.height kopieren
xxx.style.overflowY = "hidden"; xxx.onkeyup = function(){ xxx.style.height = xxx.scrollHeight+"px"; };
8 Kontrollkästchen zum Auswählen, Abbrechen und Umkehren
//下面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; } }