javascript - 防止用户在达到最大长度时输入其他字符

标签 javascript forms angularjs validation input

使用angularjs,我对ng-maxlength标签不满意。我希望输入字段在达到最大长度时阻止用户输入其他字符。因此,我尝试编写一个指令来验证 keydown/keypress 上的输入,而不是 ng-maxlength:

.directive('vldMaxLength', function() {
  return function (scope, element, attr) {
    element.bind('keydown keypress', function (event) {
      if(event.target.value.length >= 10 && (event.which !== 8 && event.which !== 46)) {
        event.preventDefault();
      }
    });
  };
})

这工作正常,但用户无法突出显示字符串的一部分并替换为不同的字符。也许我可以在指令中添加一些东西来允许这样做?或者也许有一种更简单的方法来获得此功能而不是使用指令。

JSFiddle:http://jsfiddle.net/DwKZh/147/

最佳答案

您可以使用 straight HTML version :

<form action="demo_form.asp">
  Username: <input type="text" name="usrname" maxlength="10"><br>
  <input type="submit" value="Submit">
</form>

关于javascript - 防止用户在达到最大长度时输入其他字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686189/

相关文章:

javascript - 使用 Javascript 提交表单

javascript - 我自己的 javascript 文件需要智能感知或自动完成功能

javascript - innerHTML 为空? JS 表单验证

javascript - 如何在不回显的情况下将 session 值发送到客户端

forms - React formik - 在http请求后用数据填充表单输入

javascript - 如何拆分 AngularJS Controller ?

angularjs - AngularJS 中的 $get 是什么?

AngularJS Batarang - 什么是拦截表达式?

javascript - 下载 VueJS - Spring Boot 时为空白 PDF

javascript - BackboneJS - 监听嵌套模型的变化