Я пытаюсь сбросить форму после нажатия кнопки отправки. Я понимаю, что установка формы на нетронутую не должна очищать поля ввода. Я попытался реализовать различные предложения, чтобы очистить форму, установив форму в нетронутую, а затем присвоив значение null всем полям ввода. Есть ли более аккуратный способ его реализации?Не удается удалить форму
Шаблон:
<p>{{contactForm.$pristine}}</p>
<div class="inBox">
<form name="contactForm" novalidate>
<div class="form-group" ng-class="{ 'has-error' : contactForm.name.$invalid && !contactForm.name.$pristine }">
<label>Name</label>
<input type="text" ng-model="tabVm.name" class="form-control" name="name" required>
<p ng-show="contactForm.name.$invalid && !contactForm.name.$pristine" class="help-block">You name is required.</p>
</div>
<div class="form-group" ng-class="{ 'has-error' : contactForm.email.$invalid && !contactForm.email.$pristine }">
<label>Email</label>
<input type="email" ng-model="tabVm.email" name="email" class="form-control" required>
<p ng-show="contactForm.email.$invalid && !contactForm.email.$pristine" class="help-block">Enter a valid email.</p>
</div>
<div class="form-group">
<label>Contact Number</label>
<input type="tel" ng-model="tabVm.number" class="form-control">
</div>
<div class="form-group" ng-class="{ 'has-error' : contactForm.message.$invalid && !contactForm.message.$pristine }">
<label>Message</label>
<textarea type="text" rows="5" ng-model="tabVm.message" name="message" class="form-control textBox" required></textarea>
<p ng-show="contactForm.message.$invalid && !contactForm.message.$pristine" class="help-block">Brief message is required.</p>
</div>
</form>
<button type="submit" ng-click="sendMsg()" class="btn large-btn"
ng-disabled="contactForm.message.$invalid || contactForm.name.$invalid||contactForm.email.$invalid " >Send</button>
</div>
app.js
$scope.contactForm.$setPristine();
и я также попытался
$scope.contactForm.$pristine=true;
Ни один из них, кажется, работают. Я использую угловой 1.4.8.
спасибо.
Вы пытались использовать оба эти параметра $ scope.controlForm. $ SetPristine(); 'и' $ scope.tabVm = {} '? – Amarnath
Да, да. Я пробовал все комбинации ссылок и использовал setPristine. Из скрипки, которую опубликовал @Michelem, это несовместимость с моим кодом. В противном случае код должен работать нормально. – dpm
Когда я пытаюсь напечатать значение contactForm на консоли, он дает неопределенный. Однако он должен [Объект HTML FormElement]. Форма находится внутри контроллера, потому что переменные tabVm.name и т. Д. Распознаются. – dpm