【发布时间】:2015-08-18 03:58:44
【问题描述】:
HTML:
<div class="form-group"
ng-class="{ 'has-error' : form.firstName.$invalid && form.firstName.$touched }">
<label for="firstName"
class="control-label">
First Name
</label>
<input type="text"
name="firstName"
id="firstName"
ng-model="editableUser.firstName"
class="form-control"
required>
<span class="help-block"
ng-show="form.firstName.$error.required && form.firstName.$touched">
First Name is required
</span>
</div>
<input type="submit"
ng-click="submit()"
value="Submit"
class="btn btn-default">
当用户单击提交时,我试图让我的“有错误”类启动无效字段。
我认为你可以这样做:
$scope.submit = function () {
if ($scope.form.$invalid) {
angular.forEach($scope.form.$invalid, function(field) {
field.$setTouched();
});
alert("Form is invalid.");
}
};
但是https://docs.angularjs.org/api/ng/type/form.FormController中没有$setTouched方法
编辑:意识到$setTouched确实存在,它在https://docs.angularjs.org/api/ng/type/ngModel.NgModelController中
【问题讨论】:
-
您的某个表单域是什么样的?您可以编辑您的问题以包含一个示例吗?我很感兴趣你为什么还要检查 $touched?
-
如果你改用 setDirty 会怎样?
-
@BenHeymink 添加代码以澄清。
标签: javascript angularjs twitter-bootstrap validation