Heim > Web-Frontend > js-Tutorial > Hauptteil

Die jQuery-Erweiterung implementiert eine Textaufforderungsmethode für die Anzahl der einzugebenden Bytes

高洛峰
Freigeben: 2016-12-03 16:46:30
Original
1036 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt, wie man jQuery erweitert, um Textaufforderungen dazu zu implementieren, wie viele Bytes eingegeben werden können. Teilen Sie es wie folgt mit allen als Referenz:

1. Fügen Sie eine benutzerdefinierte jQuery-Erweiterung hinzu

$(function($){
  // tipWrap:  提示消息的容器
  // maxNumber:  最大输入字符
  $.fn.artTxtCount = function(tipWrap, maxNumber){
    var countClass = 'js_txtCount',  // 定义内部容器的CSS类名
    fullClass = 'js_txtFull',  // 定义超出字符的CSS类名
    disabledClass = 'disabled';  // 定义不可用提交按钮CSS类名
    // 统计字数
    var count = function(){
      var val = lenFor($.trim($(this).val()));
      if (val <= maxNumber){
       tipWrap.html(&#39;<span class="&#39; + countClass + &#39;">\u8FD8\u80FD\u8F93\u5165 <strong>&#39; + (maxNumber - val) + &#39;</strong> \u4E2A\u5B57\u8282</span>&#39;);
      }else{
       tipWrap.html(&#39;<span class="&#39; + countClass + &#39; &#39; + fullClass + &#39;">\u5DF2\u7ECF\u8D85\u51FA <strong>&#39; + (val - maxNumber) + &#39;</strong> \u4E2A\u5B57\u8282</span>&#39;);
      };
    };
    $(this).bind(&#39;keyup change&#39;, count);
    return this;
  };
});
Nach dem Login kopieren

Erhalten Sie die Funktion „Anzahl der Bytes“.

var lenFor = function(str){
  var byteLen=0,len=str.length;
  if(str){
    for(var i=0; i<len; i++){
      if(str.charCodeAt(i)>255){
        byteLen += 3;
      }
      else{
        byteLen++;
      }
    }
    return byteLen;
  }
  else{
    return 0;
  }
}
Nach dem Login kopieren

2. Instanziierung

<script type="text/javascript">
// demo
$(function($){
  // 批量
  $(&#39;.autoTxtCount&#39;).each(function(){
    $(this).find(&#39;.text1&#39;).artTxtCount($(this).find(&#39;.tips&#39;), 108);
  });
});
</script>
Nach dem Login kopieren

3

<div class="form-group">
  <div class="col-sm-9">
    <label class="col-sm-1 control-label" for="form-field-1"> 内容: </label>
  </div>
</div>
<div style="padding-left:100px;" id="autoTxtCount" class="autoTxtCount form-group">
  <div >
    <textarea class="text1" name="content" cols="50" rows="3"><!--{$aData.content}--></textarea>
  </div>
  <div>
    <span class="tips"></span>
  </div>
</div>
Nach dem Login kopieren

4. Einige Stile

#autoTxtCount { width:500px; }
#autoTxtCount .help, #autoTxtCount .help a { color:#999; }
#autoTxtCount .tips { color:#999; padding:0 5px; }
#autoTxtCount .tips strong { color:#1E9300; }
#autoTxtCount .tips .js_txtFull strong { color:#F00; }
#autoTxtCount textarea.text1 { width:474px; }
Nach dem Login kopieren

haben folgende Auswirkungen:

Die jQuery-Erweiterung implementiert eine Textaufforderungsmethode für die Anzahl der einzugebenden Bytes

Die jQuery-Erweiterung implementiert eine Textaufforderungsmethode für die Anzahl der einzugebenden Bytes


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage