Sergamers
@Sergamers
front-end

Валидация списка ng-model?

Подскажите как правильно написать валидацию.
<form class="ownForm" name="basket" >
<div class="ownForm-row" ng-repeat="(key, value) in form.items">
    <div class="ownForm-label">
      Продукт - <b> {{ value.name }} </b>
    </div>

    <div class="ownForm-param">
      <input type="text" class="form-control" ng-model="value.quantity" name="quantity[{{key}}]" ng-pattern="/^[1-9]\d*$/" required>

      <button class="btn btn-danger" ng-click="deleteItem(key)">Удалить</button>

      <div ng-show="basket.$submitted &&  basket.quantity[key].$invalid"  class="ownForm-error">
        <span ng-show="basket.quantity[key].$error.required"> Это обязательное поле </span>
        <span ng-show="basket.quantity[key].$error.pattern"> Введите положительное число </span>
      </div>
    </div>
  </div>
</form>

Валидатор говорит, что quantity[19] - косячный по паттерну, но вот эта строчка не проходит basket.quantity[key].$invalid
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
Sergamers
@Sergamers Автор вопроса
front-end
Решил проблему. Суть в том, что он quantity[19] считал строкой, а не массивом. Решил проблему так:

<input type="text" class="form-control" ng-model="value.quantity" name="quantity-{{key}}" ng-pattern="/^[1-9]\d*$/" required>

<div ng-show="basket.$submitted && basket['quantity-' + key].$invalid" class="ownForm-error">
        <span ng-show="basket['quantity-' + key].$error.required"> Это обязательное поле </span>
        <span ng-show="basket['quantity-' + key].$error.pattern"> Введите положительное число </span>
      </div>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы