ng-disabled myForm。$ invalid not working

时间:2016-05-26 16:15:13

标签: angularjs angular-material

如果用户没有填写所有必填字段,我已尝试使用不同的方法来禁用表单提交按钮

我试图理解这是如何工作的,因为它是随机发生的,我总是使用类似的方法。

这是html:

<form name="newContactForm" novalidate>
  <md-card layout="column" layout-align="center" layout-wrap>
   <md-card-content flex="50">
     <div layout="row" layout-align="center" layout-wrap>
       <md-input-container flex="25">
         <label>Name</label>
         <input name="name" ng-model="newContact.name" required>
       </md-input-container>
       <md-input-container flex="25">
         <label>Telephone</label>
         <input name="tel" ng-model="newContact.tel" required>
       </md-input-container>
       <md-input-container flex="25">
         <label>Email</label>
         <input name="email" ng-model="newContact.email" required>
       </md-input-container>
       <md-input-container flex="25">
         <label>Title</label>
         <input name="title" ng-model="newContact.title" required>
       </md-input-container>
       <md-input-container flex="100">
         <label>Notes</label>
         <textarea name="notes" ng-model="newContact.notes" required md-maxlength="150" maxlength="150"></textarea>
       </md-input-container>
     </div>
   </md-card-content>
   <md-card-actions layout="row" layout-align="end center">
     <md-button ng-disabled="newContactForm.$invalid" ng-click="create(newContact)">Submit</md-button>
     <md-button>Cancel</md-button>
   </md-card-actions>
  </md-card>
</form>

这仍然没有禁用Submit按钮,我在这里做错了什么?

更多信息

如果有帮助,我会在md-dialog中找到该表单。

我也尝试过做

setTimeout(function () {
  console.log($scope.newContactForm.$valid);
}, 2000);

返回Cannot read property '$valid' of undefined

1 个答案:

答案 0 :(得分:0)

尝试使用!valid代替invalid,如

<md-button ng-disabled="!newContactForm.$valid" ng-click="create(newContact)">Submit</md-button>

如果有效,请告诉我