0

テキストボックスに最大文字を設定しようとしています

            <form class="form-horizontal">
            <input type="text" ng-model="formtodotext" ng-model-instant maxlength="22">
            <button class="btn btn-info"ng-click="addTodo()"><i class="icon-plus"></i>Toevoegen</button>
           </form>

しかし、それはiphoneでは機能しません.chromeでは機能します.

PS: max="22" も機能しません

私がこれを間違って書いていたらごめんなさい、スタックオーバーフローnoob..

4

2 に答える 2

2

入力したテキストが 22 よりも長い場合に入力を無効としてマークしたい場合は、次を使用できますng-pattern

<input type="text" ng-pattern="/^.{0,22}$/" ng-model="formtodotext" ng-model-instant>

23 番目の文字を入力しようとした場合にユーザー入力を防止するには、カスタム ディレクティブが必要です。

app.directive('maxLength',function(){
  return {
    restrict: 'A',
    require: 'ngModel',
    link: function(scope, el, attrs, ngModelCtrl){
      function checkLength(text) {
        var old = ngModelCtrl.$modelValue;
        if(text.length<=attrs.maxLength) {
          return text;
        }else{
          ngModelCtrl.$setViewValue(old);
          ngModelCtrl.$render();
          return old;
        }
      }
      ngModelCtrl.$parsers.push(checkLength);
    }
  }
});

そのように使用します:

<input type="text" max-length="22" ng-model="formtodotext" ng-model-instant>
于 2013-10-22T07:34:27.017 に答える
0

maxlength は Chrome だけでなく iOS でも動作すると思います。これには ng-maxlength があるため、ng-pattern を使用する必要はありません。フォームを無効としてマークしますが、ユーザーがさらにテキストを入力するのを止めません。

<input type="text" ng-model="formtodotext" ng-model-instant ng-maxlength="22" maxlength="22">

于 2013-10-22T08:06:52.267 に答える