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

JLe*_*ich 4 javascript forms validation input angularjs

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

.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();
      }
    });
  };
})
Run Code Online (Sandbox Code Playgroud)

这很有效,但是用户无法突出显示字符串的一部分并用不同的字符替换.也许我可以添加到指令中以允许这个?或者可能有一种更简单的方法来获得此功能而不是使用指令.

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

Cod*_*man 15

您可以使用直接HTML版本:

<form action="demo_form.asp">
  Username: <input type="text" name="usrname" maxlength="10"><br>
  <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)