Cześć, chcę uzyskać prawidłowy lub nieprawidłowy stan wszystkich formularzy poza tagiem formularza, tj. Przypuśćmy, że jeśli którykolwiek z formularzy nie jest prawidłowy, powinien zostać wyświetlony komunikat o błędzie. myform. $invalid nie działa dla wszystkich formularzy i nie jest aktualizowany

<div ng-repeat="a in [0,1,2,3,4]">
  <form name="myForm">
     <input type="text">
  </form>
</div>
<div ng-if="myform.$invalid">Fill all fields</div>
1
sam 20 listopad 2019, 08:31

2 odpowiedzi

Jak rozumiem, walidacja kątowa nie działa poprawnie z tą samą nazwą formularza na tej samej stronie.

Angular weźmie pod uwagę tylko ostatnią nazwę formularza

Np .:

<form name="myForm">
  <input name="myInput" ng-model="myInput" required>
</form>
<form name="myForm">
  <input type="email" name="myInpu" ng-model="myInpu">
</form>
<p>The input's valid state is:</p>
<h1>Form 1 : {{myForm.myInput.$valid}}</h1>
<h1>Form 2 : {{myForm.myInpu.$valid}}</h1>
0
Vimal 20 listopad 2019, 08:45

Lepiej mieć wszystkie elementy <input> w tym samym formularzu:

<form name="myForm">
  <div ng-repeat="a in [0,1,2,3,4]">
     <input type="text" name="myInput{{a}}" ng-model="itemArr[$index]" required />
  </div>
</form>
<div ng-show="myForm.$invalid">Fill all fields</div>
$scope.itemArr = [];

Ważne jest również, aby każdy element <input> miał dyrektywę ng-model.

Więcej informacji znajdziesz w

2
georgeawg 20 listopad 2019, 09:34