javascript - 如何防止文本框在达到javascript限制时接受输入

标签 javascript

我正在从文本框获取输入并计算java脚本中的字符数(不包括空格、特殊字符和换行符(输入)),但我无法限制用户输入任何类型的字符,直到他编辑文本输入我能够阻止完整键盘的位置。 我正在使用下面的代码,您能否建议我添加一些内容,以便我可以添加上述功能。

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.

最佳答案

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.

关于javascript - 如何防止文本框在达到javascript限制时接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41997455/

相关文章:

javascript - 使用 puppeteer 在本地下载网站,无需 Javascript

javascript - 学习 JavaScript……我应该直接跳到好东西(框架)吗?

javascript - 等待动态加载的脚本

javascript - 根据某些条件在我的 HTML 页面中创建一个对话框

javascript - 使用 Rails 3.1 中的 JQuery 下拉框发布到 Controller

javascript - 为什么我的组件在更改状态后没有重新呈现?

javascript - Jquery:如何使 <div> 中的对象在单击时隐藏或显示?

javascript - 使用媒体查询来操纵 jquery Accordion

javascript - 访问我无法控制的特定页面时执行 JavaScript

javascript - 如何跟踪网站中图像的下载次数