所需的验证不适用于输入类型文件

required validation does not work with input type file

我正在尝试使用 angular 表单和表单属性(例如 $valid, $invalid, $pristine, $dirty, $touched[ 对文件输入类型应用验证=24=]。

注意:除文件类型外的所有其他验证都有效。

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 link 供参考。

您的文件输入没有必需的属性。

编辑: 您还需要更改 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 之后它会按预期工作。