Очистка угловой формы
Я использую AngularJs 1.4 и имею форму ввода. У меня есть кнопка сброса, отмены и отправки в конце формы. Когда я нажимаю, все элементы формы должны быть установлены в значения по умолчанию. Но submitForm
функция также вызывается вместе с resetForm
функция, когда я нажимаю reset
кнопка. Пожалуйста, дайте мне знать, где я иду не так. Поля формы также не сбрасываются.
<form class="form-horizontal" name="myForm" ng-submit="submitForm(myForm.$valid)" novalidate><!-- novalidate prevents HTML5 validation since we will be validating ourselves -->
<div class="form-group" ng-class="{ 'has-error' : myForm.ipaddresses.$invalid && !myForm.ipaddresses.$pristine }">
<label class="col-sm-3 control-label">IP</label>
<div class="col-md-6"><textarea name="ipaddresses" class="form-control" ng-model="ipaddresses" ng-minlength="8" ng-requied="!myForm.myFile"></textarea></div>
<p ng-show="myForm.ipaddresses.$invalid && !myForm.ipaddresses.$pristine" class="help-block">Hostname or IP Addresses are mandatory</p>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group">
<label class="col-sm-3 control-label">File Upload</label>
<div class="col-lg-6">
<div class="upload-file">
<input type="file" file-model="myFile" class="upload-demo" id="upload-demo" ng-requied="!myForm.ipaddresses">
<label for="upload-demo" data-title="Select file">
<span class="ng-binding">Comma separated CSV file...</span>
</label>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group"><label class="col-sm-3 control-label">Mode</label>
<div class="col-md-3">
<select name="mode" class="form-control m-b" ng-required="true">
<option>Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group" style="margin-top: 8%;">
<div class="col-sm-4 col-sm-offset-4">
<button class="btn btn-info">Cancel</button>
<button class="btn btn-warning" ng-click="resetForm(myForm)">Reset</button>
<button class="btn btn-primary" type="submit" ng-disabled="myForm.$invalid">Next >></button>
</div>
</div>
</form>
Внутри моего контроллера у меня есть следующий код:
$scope.submitForm = function(isValid) {
// check to make sure the form is completely valid
if (isValid) {
alert('our form is amazing');
}
};
$scope.resetForm=function(myForm){
console.log('came here....')
myForm.ipaddresses=null;
}
2 ответа
Просто измените myForm.ipaddresses=null;
в $scope.ipaddresses='';
,
Это должно выглядеть так:
$scope.resetForm=function(myForm){
console.log('came here....');
$scope.ipaddresses='';
}
Вы можете использовать $setPristine(); в форму, как говорит документ в угловом https://docs.angularjs.org/api/ng/type/form.FormController
"Возвращение формы в исходное состояние часто полезно, когда мы хотим" повторно использовать "форму после ее сохранения или сброса".
ожидать помощи вам