【问题标题】:required validation does not work with input type file必需的验证不适用于输入类型文件
【发布时间】:2016-01-13 11:13:22
【问题描述】:

我正在尝试使用角度表单和表单属性(如 $valid、$invalid、$pristine、$dirty、$touched)对文件输入类型进行验证。

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

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>

但上面的 sn-p 不起作用。请帮我解决这个问题。

Here 是 plnkr 链接供参考。

【问题讨论】:

    标签: javascript angularjs forms validation required


    【解决方案1】:

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

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

    【讨论】:

    • 嗯,这是一个错字。
    • 我已经编辑了我的答案(我发现了另一个错字) - 引入建议的更改后应该没问题。
    猜你喜欢
    • 1970-01-01
    • 2014-05-12
    • 2013-06-14
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多