2017-02-02 3 views
1

テキストボックスから入力し、スペース、特殊文字、および改行を除いた文字数をJavaスクリプトでカウントしていますが、私は完全なキーボードをブロックすることができたところで入力されたテキストを編集するまで、ユーザーに任意のタイプの文字を入力するように制限します。 私は以下のコードを使用しています。上記の機能を追加できるようにいくつか追加してください。JavaScriptが上限に達したときにテキストボックスが入力されないようにするには

function countChars(countfrom, displayto) { 
 
    var val = document.getElementById(countfrom).value, len; 
 
    val = val.replace(/[^a-zA-Z0-9]/igm, ""); 
 
    len = val.length; 
 

 
    document.getElementById(displayto).innerHTML = len; 
 
    if (len >= 9) { 
 
     onkeydown = function(e) { 
 
      e.preventDefault(); 
 
     } 
 
    } 
 
}
<textarea id="data" cols="40" rows="5" 
 
onkeyup="countChars('data','charcount');" onkeydown="countChars('data','charcount');" onmouseout="countChars('data','charcount');"></textarea><br> 
 
<span id="charcount">0</span> Characters entered.

答えて

0

preventDefault()罰金ですが、あなたは、ユーザーがテキストを編集するためバックスペースを削除できるようにすべきです。スニペット以下

チェック:

function countChars(countfrom, displayto) { 
 
    var val = document.getElementById(countfrom).value; 
 
    val = val.replace(/[^a-zA-Z0-9]/igm, ""); 
 
    var len = val.length; 
 

 
    document.getElementById(displayto).innerHTML = len; 
 

 
    onkeydown = function(e) { 
 
    if (e.keyCode != 8 && e.keyCode != 46 && len >= 9) 
 
     e.preventDefault(); 
 
    } 
 

 
}
<textarea id="data" cols="40" rows="5" onkeyup="countChars('data','charcount');" onkeydown="countChars('data','charcount');" onmouseout="countChars('data','charcount');"></textarea> 
 
<br> 
 
<span id="charcount">0</span> Characters entered.

関連する問題