Angularjs 如果至少有一个输入字段为空,则使用ngDisabled禁用按钮

Angularjs 如果至少有一个输入字段为空,则使用ngDisabled禁用按钮,angularjs,Angularjs,如果字段不正确,我想阻止用户单击“注册”按钮。部分原因是某些字段必须填写。但情况开始变得有点长: <button class="btn btn-success" ng-click="register()" ng-disabled="signInForm.$invalid || form.firstName.length==0 || form.lastName.length==0 || form.email.length==0 || form.password.len

如果字段不正确,我想阻止用户单击“注册”按钮。部分原因是某些字段必须填写。但情况开始变得有点长:

<button class="btn btn-success" ng-click="register()"
    ng-disabled="signInForm.$invalid || form.firstName.length==0 ||
    form.lastName.length==0 || form.email.length==0 ||
    form.password.length==0 || form.passwordBis.length==0">Register</button>
寄存器

如何简化这一点?

我认为您需要的是为表单中的输入字段提供
required
属性,因此在表单中填写字段之前,
signinfo
将无效。同样,您也可以在输入上提供其他验证属性

例如:-

  <input type="text" ng-model="firstName" name="firstName" required />
  <input type="text" ng-model="lastName" name="lastName" required />
  <input type="email" ng-model="email" name="email" required />
  ...
  ...
  <button class="btn btn-success" ng-click="register()" 
            ng-disabled="signInForm.$invalid">Register</button>

...
...
登记

您只需为所有输入提供
required
属性,这样做
看起来您是对的:但在我的情况下,它不起作用。。。看起来我没有使用相同的框架。。。我有AngularJS v1.2.25,还有电子邮件:toto@to“在我的代码中有效,而在上面的JSFIDLE示例中无效。我的代码中也要求不改变行为。。。有什么想法吗?我连小提琴都拿不到,你能不能把它贴在一张纸上。我知道以前电子邮件验证模式有一个bug…我理解你的意思,你的问题更多地与html5电子邮件验证和angular有关,如果你在官方文档的演示中也这样做,你会看到同样的问题。您可以通过提供
ng模式来使用自己的模式
Ok,非常有趣。。。在plunker中,电子邮件验证就像在我的程序中一样有效:无论如何,所需的东西是有效的,我在某个input ng类中的按钮上方有一个冲突,这可能导致该东西不起作用。我没有注意到任何错误,很难猜测使用angular指令时出现了什么错误,控制台上没有错误。我试图在网上找到一个好的电子邮件模式,但这似乎是一个复杂的问题,没有唯一的答案=/