【问题标题】:Angular JS ng file uploadAngular JS ng文件上传
【发布时间】:2016-08-20 18:36:32
【问题描述】:

我在我正在处理的项目中使用 Angular 的 JS 众所周知的 ng 文件上传指令 (https://github.com/danialfarid/ng-file-upload),但我遇到了关于验证的问题。我添加了 ngf-pattern 指令,以防止用户上传某些文件格式。这很好用,每个无效文件都在 $invalidFiles 数组中可用。无论如何要清除这个数组吗?

我使用 $invalidFiles 数组来检测何时使用了无效文件,并提醒用户。该文件未显示在 UI 中,也未添加到我的模型中,但由于表单无效,我仍然无法提交表单。只有在我添加了有效文件后,我才能提交表单。有没有办法检测无效文件但仍然能够提交表单?

希望我是清楚的.. 谢谢!

【问题讨论】:

  • 我们可以为您的场景提供一个小提琴吗?
  • 是的!你可以在这里找到它:jsfiddle.net/2vq88rfs/631。如果添加无效文件,它不会被添加到模型中,它将被添加到错误文件数组中,并且在添加有效文件之前表单将无效。我只想能够捕捉到错误,但仍然提交表单(如果之前已经添加了一些有效文件)。希望它有所帮助..
  • @tsahnar 如果您想提交无效的表格,那么知道表格是否有效有什么意义?
  • @Akis_Tfs 您是否为您的评论选择了合适的用户?
  • @Sampath 我真的很抱歉,错误的标签

标签: javascript angularjs forms validation ng-file-upload


【解决方案1】:

您真正需要的可能是ngf-change,而不是ngf-select。根据文档,您分配给 ngf-change 指令的处理函数将在您选择、删除或清除时​​被调用。

如果您想要实现的唯一目标是允许表单提交,无论它是有效还是无效,那么可以在 ng-model-options 上使用另一种方法。有一个名为allowInvalid 的选项,默认为false,将其设置为true 即可。

所以在你的例子中:

<button name="bla" multiple accept="image/*"              
        ngf-keep="true" 
        ng-model="myFiles" 
        ngf-pattern="'image/*'" 
        ngf-max-size="1MB"
        ngf-change="handleFiles($files, $invalidFiles)"
        ngf-model-options="{allowInvalid: true}">
  Select Files
</button>

请注意我们在此处更改的最后两个指令。

完整参考可以在Full reference - File select and drop部分查看官方文档

【讨论】:

  • @tsahnar 不用担心,如果它适合你,请随时投票。
【解决方案2】:

这是你需要的吗:JsFiddle

$scope.submit = function() {
    alert('form is ready');
   }

【讨论】:

  • 现在您删除了检查表单是否有效的条件。所以它错过了整点
  • 您仍然可以捕捉到错误并且可以提交表单吗?如果没有,你需要什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 2014-03-02
相关资源
最近更新 更多