2014-10-02 95 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

相關問題