Javascript 如何在以下场景中禁用AngularJS中的提交?

Javascript 如何在以下场景中禁用AngularJS中的提交?,javascript,html,angularjs,forms,ng-file-upload,Javascript,Html,Angularjs,Forms,Ng File Upload,我在AngularJS中禁用HTML表单中的提交按钮时遇到一些问题 场景: 我正在从HTML选择框中选择某个进程,即Drop 下拉列表 一旦我从中选择了一些条目,下面的部分就是 自动填充所需的表单,该表单再次具有 输入的数量 填写这些值后,您可以提交或取消请求 条件: 列表中有一个进程,我需要上传1个或多个文件以及其他输入参数。为此,我使用了两步方法,首先使用按钮选择文件,然后使用另一个按钮上载文件。单击此按钮进行REST调用,并将文件发送到所需的目标。 我正在使用来自的ng file up

我在AngularJS中禁用HTML表单中的提交按钮时遇到一些问题

场景:

  • 我正在从HTML选择框中选择某个进程,即Drop 下拉列表
  • 一旦我从中选择了一些条目,下面的部分就是 自动填充所需的表单,该表单再次具有 输入的数量
  • 填写这些值后,您可以提交取消请求
条件:
列表中有一个进程,我需要上传1个或多个文件以及其他输入参数。为此,我使用了两步方法,首先使用按钮选择文件,然后使用另一个按钮上载文件。单击此按钮进行REST调用,并将文件发送到所需的目标。
我正在使用来自的
ng file upload
指令来完成此操作

问题:
我最初使用的是
ng disabled
来禁用submit按钮,条件是所有必需的输入元素都已填充,并且所有输入验证都已通过。现在,当我处于需要上传文件的用例中时,问题就出现了。当我选择一个文件并将其上载时,HTML将该元素视为空,因为该文件已发送到其目标,因此验证失败所有必需的输入元素都已填充!如果我删除此验证,即使必填字段为空,我的表单也会被提交


那么,在这种情况下,我可以做些什么来禁用我的提交按钮呢

如@ShashankVivek所说,创建一个布尔变量

如果文件上载$scope.upload=true

所以你的按钮应该是这样的

<button data-ng-disabled="!form.valid && !uploaded">Submit</button>
提交

我还没有处理过这种情况,但我认为当REST服务返回成功响应时,您可以将布尔值指定为
true
给某个变量(比如$scope.flag)。在
ng submit
函数上,您可以检查
表单。$valid
是否为真,以及
$scope.flag
是否为真,然后提交表单。@ShashankVivek我确实试过了。本例中的问题变为该表单。$valid变为false。因此,该按钮仍处于禁用状态。禁用ng和禁用数据ng之间的区别是什么?@ashem data ng disabled比禁用ng更好地通过html5验证程序。最好使用“数据ng”而不是“ng”。