textarea限制輸入長度


 

      最近公司的項目客戶在使用時報錯,研究后發現,textarea輸入框,輸入值的長度超過了數據庫中定義的長度,所以造成了,前台的錯誤,因此要對前台輸入框的輸入的長度進行限制;經過研究后發現,一下幾種方法可以較好地解決問題:

 備注:其實對於數據長度的驗證,我們可以在提交前,以及提交后進行驗證,但是我們的這個出現問題的,由於某些原因是不能在提交后進行驗證,所以我研究了下幾種前台驗證的方式,供以后有需要的同志參考。

第一種:

其實最簡單的方式是:在submit提交前進行這樣的if判斷,不用js驗證即可,而且較為直觀

if(document.getElementById("textarea的id的名字").value.length >200){
   alert您輸入的字數超出限制,最多錄入200個字。");
   return false;
  }

第二種:

<html>
    <head>
        <title>
        </title>
        <script type="text/javascript">
            var textarea_maxlen = {
                isMax: function(max_length) {
                    var textarea = document.getElementById("area");
                    if (textarea.value.length > max_length) {
                        textarea.value = textarea.value.substring(0,max_length);
                    }
                },
                disabledRightMouse: function() {
                    document.oncontextmenu = function() {
                        return false;
                    }
                },
                enabledRightMouse: function() {
                    document.oncontextmenu = null;
                }
            };
        </script>
    </head>
    <body>
 請輸入內容:
        <br><textarea id="area"  onkeyup="textarea_maxlen.isMax(10)" onfocus="textarea_maxlen.disabledRightMouse()"
        onblur="textarea_maxlen.enabledRightMouse()" >
        </textarea>
    </body>
</html>

總結:這種方法在輸入達到最大限制后,是無法輸入進去,較為合理的解決了這樣的問題

第三種:

<html>
<head>
<title>限制Textare輸入數值的個數</title>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312" />
<script language="JavaScript">   
function textCounter(field, countfield, maxlimit) {   
 // 函數,3個參數,表單名字,表單域元素名,限制字符;   
 if (field.value.length > maxlimit)   
 //如果元素區字符數大於最大字符數,按照最大字符數截斷;   
 fieldfield.value = field.value.substring(0, maxlimit);   
 else   
 //在記數區文本框內顯示剩余的字符數;   
 countfield.value = maxlimit - field.value.length;   
}   
</script>
 </head>
  <body>
   <form name=myform action="">
      <textarea name="message" cols="28" rows="5"
       onKeyDown="textCounter(this.form.message,this.form.remLen,10);"
       onKeyUp="textCounter(this.form.message,
       this.form.remLen,10);">
    </textarea>
      您還可以輸入:<input name="remLen" type="text" value="10" size="3" readonly="readonly">個字符 
   </form>
 </body>
</html>

總結:這種方法可以較為直觀的顯示出輸入框中還能輸入多少字符。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM