2017-02-02 4 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.