【问题标题】:Prevent user from entering additional characters when maximum length reached达到最大长度时阻止用户输入其他字符
【发布时间】:2014-03-08 07:32:52
【问题描述】:

使用 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/

【问题讨论】:

    标签: javascript forms angularjs validation input


    【解决方案1】:

    你可以使用straight HTML version:

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

    【讨论】:

    • @mila 如果您使用的是 Angular,请使用 Angular 限制字段长度的方式。
    • @ArlenBeiler ng-maxlength: docs.angularjs.org/api/ng/directive/input 它为数据模型提供了比简单的 HTML 解决方案更多的信息,例如,您可以向用户提供反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多