2014-10-02 69 views
15

如果字段不正确,我想阻止用户单击“注册”按钮。其中一部分是必须填写某些字段。但条件开始变得有点长:如果至少有一个输入字段为空,使用ngDisabled禁用按钮

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

我该如何简化?

+1

你只需要为所有的输入提供'required'属性,做'<按钮类= “BTN BTN-成功” NG点击= “注册()” NG -disabled =“signInForm。$ invalid>注册' – PSL 2014-10-02 13:53:30

回答

25

我认为你需要的是为你的表单中的输入字段提供required属性,所以直到字段被填写的形式signInForm将是无效的。同样,您也可以在输入中提供其他验证属性。

例子: -

<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> 
+0

看起来你是对的:http://jsfiddle.net/mgmp6L0b/但在我的情况下,它不工作...看起来我没有使用相同的框架...我有AngularJS v1.2.25,并且电子邮件:“toto @ to”在我的代码中是有效的,而不是在上面的JSFiddle例子中。在我的代码中也需要不会改变行为...任何想法? – Elfayer 2014-10-02 14:18:00

+0

我不能访问小提琴可以粘贴在一个plunkr。我knw那里曾经是ab ug with email validator pattern ... – PSL 2014-10-02 14:26:33

+0

我明白你说的是什么,你的问题更多地与html5电子邮件验证和角度有关。如果你在官方文档中的演示中也做同样的事情,你也会看到相同的结果。 https://docs.angularjs.org/api/ng/input/input%5Bemail%5D你可以使用你自己的模式,通过提供'ng-pattern' – PSL 2014-10-02 14:39:10

相关问题