2016-04-09 11 views
3

角度と材質のデザインを発見したばかりで、箱から出てくるすべての機能が大好きです。検証が必要な連絡先フォームを作成しました。これはフィールドが必要なとき、または間違った形式で入力されたときにエラーメッセージを表示します。欠落しているのは、ユーザーが[送信]ボタンをクリックしても、フォームをサーバーに送信できることです。したがって、エラーメッセージは実際には役に立ちません。検証が失敗した場合にフォームの提出を防止する(角材)

HTML

<md-content layout-padding=""> 
    <form name="projectForm" action="/" method="post" novalidate> 
    <div layout-gt-sm="row"> 
     <md-input-container class="md-block" flex-gt-sm=""> 
     <label>Email</label> 
     <input required="" type="email" name="emailAddress" ng-model="project.emailAddress" ng-pattern="/^[email protected]+\..+$/"> 
     <div ng-messages="projectForm.emailAddress.$error" role="alert"> 
      <div ng-message-exp="['required', 'pattern']"> 
     Your email must be in correct format and look like an email address. 
     </div> 
    </div> 
    </md-input-container> 
</div> 
<md-input-container class="md-block"> 
    <label>Message</label> 
    <textarea required="" name="content" md-maxlength="50" ng-model="project.content" rows="3" md-select-on-focus=""></textarea> 
    <div ng-messages="projectForm.content.$error" role="alert"> 
    <div ng-message="required"> 
     Your must enter a message. 
    </div> 
    </div> 
</md-input-container> 
<md-button type="submit" class="submit">Submit</md-button> 

JS:ここ

angular 
    .module('toast', ['ngMaterial', 'ngMessages']) 
    .controller('formCtrl', function($scope) { 
    $scope.project = { 
     //scope stuff goes here 
    }; 
    }) 

Codepenです。

+0

をフォームが有効でない場合にだけ送信ボタンを無効にします。 – Lex

+0

どうすればいいですか?ユーザーはまだ入力を押してフォームを送信できないでしょうか? – cmelone

答えて

3

フォームが無効である場合、送信ボタンを無効にします。

<md-button type="submit" class="submit" ng-disabled="projectForm.$invalid">Submit</md-button> 
+0

ありがとうございますが、ユーザーが入力ボタンで送信できないようにしていません。 – cmelone

+0

AngularのFormsは通常、アクションを持たず、通常コントローラ内で処理されます。そのパターンに従えば、 '$ scope.projectForm。$ valid'をチェックし、それが有効でない場合にだけ返すことができます。 – Lex

+0

あなたは私に例を挙げることができますか? – cmelone

関連する問題