Aman Agarwal
Aman Agarwal

Reputation: 81

How to show length of input in minlength validation angularjs

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>

So here In the minlength I need to show the length also, but it doesn't show. Please help.

Upvotes: 6

Views: 8320

Answers (2)

Naghaveer R
Naghaveer R

Reputation: 2944

Try this

<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>

Here you are trying to do both HTML validation as well as Angular validation

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

If you just want to show min length, You can do this

  <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>

Upvotes: 4

Amal
Amal

Reputation: 3426

Try this code

<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

Upvotes: 0

Related Questions