user636525
user636525

Reputation: 3200

Show multiple messages for different form fields using ng-messages

Is it possible to use ng-messages with angular 1.3 and show validation summary on the top with error messages for different fields?

<div ng-messages="myForm.$error">
    <div ng-message="required">Need to show required error for field 1.</div>
    <div ng-message="required">Need to show required error for field 2.</div>
</div>

How can i achieve this ? All the examples i have seen so far is showing error messages for one single field, not for all the fields in the form.

Do I need to have multiple ng-messages section for each field?

Upvotes: 4

Views: 5574

Answers (3)

user636525
user636525

Reputation: 3200

I wanted to style the whole summary block as one. So i ended up doing this.

<div class="error-summary" ng-show="myForm.$submitted && myForm.$invalid">
    <p ng-show="myForm.field1.$error.required">Field 1 is required.</p>
    <p ng-show="myForm.field2.$error.required">Field 2 is required.</p>
</div>

I was hoping to do something similar to this using ng-messages.

Upvotes: 6

Rajeshwar
Rajeshwar

Reputation: 2509

Yes, you should have multiple ng-messages. Please have a look at the below link.

http://plnkr.co/edit/QgNkXKosgcArGZW7WuZO?p=preview

<form name="myForm">
  <label>Enter your name:</label>
  <br>
  <input type="text" name="myName1" ng-model="name1" required />
  <br>
  <input type="text" name="myName2" ng-model="name2" required />

  <div ng-messages="myForm.myName1.$error">
    <div ng-message="required">enter name 1</div>
  </div>
  <div ng-messages="myForm.myName2.$error">
    <div ng-message="required">enter name 2</div>
  </div>
</form>

Upvotes: 1

Michael Kang
Michael Kang

Reputation: 52837

How about this?

<div ng-messages="myForm.field1.$error">
    <div ng-message="required">Need to show required error for field 1</div>
</div>
<div ng-messages="myForm.field2.$error">
    <div ng-message="required">Need to show required error for field 2</div>
</div>
<div ng-messages="myForm.field3.$error">
    <div ng-message="required">Need to show required error for field 3</div>
</div>

Upvotes: 3

Related Questions