我正在尝试在文件输入类型上应用验证,使用角形式和表单属性,如 $ valid,$ invalid,$ pristine,$ dirty,$ touching 。
注意:除文件类型外的所有其他验证都有效。
html的代码如下所示:
<form name="userForm" ng-submit="submitForm(userForm.$valid)" novalidate>
....
....
....
<div class="form-group" ng-class="{ 'has-error' : userForm.email.$invalid && !userForm.email.$pristine }">
<label>File</label>
<input type="file" name="filetest" class="form-control" ng-model="user.file">
<p ng-show="userForm.filetest.$invalid && !userForm.filetest.$touched" class="help-block">File is required.</p>
</div>
....
....
....
</form>
但上面的代码段不起作用。请帮我解决这个问题。
Here是plnkr链接供参考。
答案 0 :(得分:0)
您的文件输入没有必需的属性。
编辑: 您还需要更改 ng-class 中的条件:它应该是
'has-error' : userForm.filetest.$invalid && !userForm.filetest.$pristine
而不是
'has-error' : userForm.email.$invalid && !userForm.email.$pristine
整个 div 元素应如下所示:
<div class="form-group" ng-class="{ 'has-error' : userForm.filetest.$invalid && !userForm.filetest.$pristine }">
<label>File</label>
<input type="file" name="filetest" class="form-control" ng-model="user.file" required>
<p ng-show="userForm.filetest.$invalid && !userForm.filetest.$touched" class="help-block">File is required.</p>
</div>
我认为在改变所提到的div之后它会按预期工作。