如何检查提交表单ng-submit="submit(field)"
中的所有字段在controller.js中是否为空?它们由少量文本框和一个选择字段组成。
如果所有字段都为空并且未选择选项,而不是单独验证,我希望发生警告框。
由于
答案 0 :(得分:4)
虽然它并不完全是您所询问的,但$pristine
可能是您想要的吗?它是表单上的标志,表示表单是否曾被编辑过。如果有人输入然后清除了一个字段,那么$pristine
仍然是假的。
<form name="myform" ng-submit="doSubmit()" ng-controller="FormController">
<input ng-model="firstName" name="firstName" />
</form>
然后在您的控制器中
.controller('FormController', function($scope){
$scope.doSubmit = function(){
if($scope.myform.$pristine){}
}
})
或者,您可以将所有字段设置为required="true"
,并以与上述相同的方式使用表单上的$valid
标记。
答案 1 :(得分:0)
您可以使用:
ng-show="!yourfield.length"
这样的事情:
<form name="yourform">
<input name="yourfield" ng-model="somefield" ng-minlength="10" required>
<span ng-show="!yourfield.myfield.$error.required">Something</span>
</form>
答案 2 :(得分:0)
你应该寻找Form Validation。看一下这个tutorial。
<input name="name" class="form-control"
ng-model="user.name" placeholder="Name" required>
<div class="alert alert-danger"
ng-show="userForm.name.$error.required">
Please enter the name.
</div>
答案 3 :(得分:0)
如果所有字段都为空,则以下内容将显示警告
angular.module('app', [])
.controller('FormController', function($scope) {
$scope.doSubmit = function(){
if (formIsEmpty($scope.myform)){
alert('You forgot to enter something before submitting');
}
};
function formIsEmpty(form) {
for (var prop in form) {
if (!form.hasOwnProperty(prop)) { continue; }
if (prop[0] === '$') { continue; }
if ($scope[prop]) { return false; }
}
return true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<form name="myform" ng-submit="doSubmit()" ng-controller="FormController">
<input ng-model="firstName" name="firstName" />
<input ng-model="lastName" name="lastName" />
<textarea ng-model="description" name="description"></textarea>
<button type="submit">Submit</button>
</form>
</div>
&#13;