如何在minlength验证angularjs中显示输入的长度

时间:2017-03-15 04:52:40

标签: angularjs forms validation

form name="form" novalidate autocomplete="off" role="form">

textarea name="firstname" id="firstname"  required data-ng-model="name" maxlength="160" minlength="50"></textarea> 

      div ng-messages="form.firstname.$error" role="alert">
          span ng-message="required">
              Please enter Name
          </span>   
        span ng-message="minlength">
          {{ 50 - name.length}}
        </span>                                   
      /div>
/form>

所以这里在minlength我需要显示长度,但它没有显示。请帮忙。

2 个答案:

答案 0 :(得分:3)

试试这个

<textarea name="firstname" id="firstname" required ng-model="firstname" ng-maxlength="160" ng-minlength="50"></textarea>
<div ng-show="myForm.firstname.$dirty" role="alert">
  <span ng-show="myForm.firstname.$error.required"> Please enter Name
  </span>
  <span ng-show="myForm.firstname.$error.minlength"> Please enter atleast 50 characters
  </span>
  <span ng-show="myForm.firstname.$error.maxlength"> Maximum allowed characters are 160
  </span>
</div>

var app = angular.module("app", []);
app.controller("ctrl", function($scope) {

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <form name="myForm" novalidate autocomplete="off" role="form">

    <textarea name="firstname" id="firstname" required ng-model="firstname" ng-maxlength="160" ng-minlength="50"></textarea>
    <div ng-show="myForm.firstname.$dirty" role="alert">
      <span ng-show="myForm.firstname.$error.required"> Please enter Name
      </span>
      <span ng-show="myForm.firstname.$error.minlength"> Please enter atleast 50 characters
      </span>
      <span ng-show="myForm.firstname.$error.maxlength"> Maximum allowed characters are 160
      </span>
    </div>
  </form>
</div>

在这里,您尝试进行HTML验证和角度验证

angularjs ng-minlength validation is not working, form still being submitted

如果你只想显示最小长度,你可以这样做

  <span ng-show="firstname.length < 50"> Please enter atleast {{50 - firstname.length}} characters
  </span>

var app=angular.module("app",[]);
app.controller("ctrl",function($scope){

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <form name="myForm" novalidate autocomplete="off" role="form">

    <textarea name="name" id="firstname" required ng-model="firstname" maxlength="160" minlength="50"></textarea>
    <div ng-show="myForm.name.$dirty" role="alert">
      <span ng-show="myForm.name.$error.required"> Please enter Name
      </span>
      <span ng-show="firstname.length < 50"> Please enter atleast {{50 - firstname.length}} characters
      </span>
    </div>
  </form>
</div>

答案 1 :(得分:0)

试用此代码

<div ng-app='demo'>
        <div ng-controller='loadData'>
      <form name="form" novalidate autocomplete="off" role="form">
    <textarea name="firstname" id="firstname" ng-model="name" maxlength="60" minlength="50" ng-trim="false"></textarea> 
    <div ng-messages="form.firstname.$error" role="alert"><span ng-message="required">Please enter Name</span></br><span ng-message="minlength">min-Length:{{ 50 - name.length}}</span></div>
    </form>
        </div>
        </div>

DEMO