2012-03-05 46 views
0

我試圖限制用戶輸入,但它不成功,請指導我在哪裏我犯了錯誤。無法限制在JavaScript中的用戶輸入

JS

<script type="text/javascript"> 
     function countLength() { 
      var maxLength=10; 
      var length = document.getElementById("txt").value.length; 

      if(length>10) { 
       return false; 
      } 
     } 
    </script> 

HTML代碼

<form name="formA" id="formA" action="#" > 
     <textarea id="txt" name="txt" onkeyup="countLength()"></textarea> 
    </form> 
+2

這裏是一個很好的解決方案http://stackoverflow.com/questions/1125482/how-to-impose-maxlength-on-textarea-in-html-using -javascript – Danny 2012-03-05 20:13:08

+0

你試過調試嗎?代碼看起來對我很好。事件發生,長度正確。 – Andreas 2012-03-05 20:18:48

回答

0

return falseonkeyup什麼也不做(因爲你可能已經注意到)。我見過有人會改變textarea的值,執行一個子字符串操作,並將這個新值賦給回來的解決方案。

1

你的代碼基本上覆制maxlength屬性,這似乎工作(我不認爲是被棄用?)。只要使用它。

<input type='text' name='mytext' maxlength='10'> 
+0

textareas沒有最大長度。這僅適用於輸入字段。 – 2012-03-05 20:17:15

+0

是的,我知道,但我也想顯示消息在'例如:5個字符左側'作爲在stackoverflow文本框 – sandbox 2012-03-05 20:18:05

0

試試這個:

function countLength() { 
     var maxLength=10; 
     var ta = document.getElementById("txt"); 
     var length = ta.value.length; 

     if(length>maxLength) { 
      ta.value = ta.value.substr(0, maxLength); 
      return false; 
     } 
    }