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 должно вести себя так же, как и вход.
Ответы
Ответ 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>