Подтвердить что ты не робот

Angular Проверка подлинности JS textarea

У меня есть этот код AngularJS, который пытается показать две звезды рядом с меткой, когда в текстовом поле нет текста. Тот же код работает для входных тегов, но не с textarea.

<div class="input-left">
    <label for="email">
        <span ng-show="contactform.email.$error.required" class="required">*</span>Email:
    </label>
    <input ng-model="email" type="text" name="email" id="email" required></br></br>
    <label for="budget">Budzet:</label>
    <input ng-model="budget" type="text" name="budget" id="budget">
</div>
<div class="clearboth">
    <label for="msg" class="left" >
        <span ng-show="contactform.msg.$error.required" class="required">**</span>Pitanja ili Komentari?
    </label>
    <textarea ng-model="msg" rows="8" cols="50" class="input-no-width rounded shaded left clearboth" id="msg" required></textarea>
</div>

Согласно документации AngularJS - textarea должно вести себя так же, как и вход.

4b9b3361

Ответ 1

Ваша проблема с тегом <textarea> заключается в том, что он не определяет атрибут name.

AngularJS использует атрибут name для выявления ошибок проверки.

Вы должны определить свою текстовую область следующим образом:

<textarea ng-model="msg" name="msg" rows="8" cols="50"
          class="input-no-width rounded shaded left clearboth" id="msg" required>
</textarea>

Обратите внимание, что для корректной обработки сообщений проверки недостаточно наличия id и ng-model. В приложениях AngularJS атрибут id часто не имеет большого значения и может быть опущен.

Ответ 2

Для подтверждения формы имя очень важно. Дайте ему имя, которое должно работать.

<textarea ng-model="msg" 
          rows="8" 
          cols="50" 
          class="input-no-width rounded shaded left clearboth" 
          id="msg" 
          name="msg" 
          required>
</textarea>