2016-01-13 81 views
0

我想通过使用角度表单和表单属性如$ valid,$ invalid,$ pristine,$ dirty,$ touch来应用文件输入类型的验证。需要验证不适用于输入类型文件

注意:除文件类型以外的所有其他验证正在工作。

代码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

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

编辑: 您还需要在您的纳克级的更改条件:它应该是

'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> 

我认为它在changind提到的div之后按预期工作。

+0

这是一个错字。 –

+0

我编辑了我的答案(我发现了另一个错字) - 在推荐建议的更改后应该可以。 –