2017-01-03 5 views
0

複数のコントロールを持つフォームがあり、必要なフィールドの検証が設定されています。データが正しい場合は、送信ボタンを呼び出したいと思います。しかし、すべてのデータがいっぱいになり、送信ボタンをクリックしても、ボタンは呼び出されません。以下のサンプルコードが使用されます。送信ボタンが呼び出されない - AngularJs

<form name="mainForm" id="createForm" ng-submit="mainForm.$valid && add()" novalidate> 
<div ng-controller="testController" ng-init="init()"> 

    <div class="container" ng-show="createMenu"> 
       <br /> 
       <div class="row"> 
        <div> 
         <label>Test:</label> 
        </div> 
        <div > 
         <select name="testTypeSelect" required ng-model="selectedtestType" ng-options="test.TestTypeName for test in tests" ng-change="updateImageUrl(selectedTestType)"> 
          <option value="">-- Select the test --</option> 
         </select> 
        </div> 
       </div> 
       <span style="color:red" ng-show="submitted == true && mainForm.testTypeSelect.$error.required"> Type is required</span> 

       <div class="row"> 
        <div > 
         <label>Name :</label> 
        </div> 
        <div> 
         <input type="text" required ng-model="testName" name="testName" /> 
        </div> 
       </div> 

<input type="submit" value="Submit" ng-click="submitted=true" /> 

//

$scope.add = function() { 

     $scope.init(); 

     alert("hi"); 
      $scope.addData(); 

    }; 

controller.js

では、この問題を解決する方法は? ありがとう

+1

への変更は無効である形態であってもよいです。あなたは条件を作り、フォームタグのng-submitでmainForm。$ validを削除しようとしました。フォームを有効にするには、alidデータを入力してください –

+0

角度インスペクタを使用して、フォームの$ valid属性を確認してください – Mikkel

+0

plunkrを追加できますか? –

答えて

0

コントローラがフォームタグの後に挿入されています。add()関数呼び出しがコントローラからの注入です。

<form name="mainForm" id="createForm" ng-submit="mainForm.$valid && add()" novalidate> 
<div ng-controller="testController" ng-init="init()"> 

<div ng-controller="testController" ng-init="init()"> 
<form name="mainForm" id="createForm" ng-submit="mainForm.$valid && add()" novalidate> 
+0

同じ問題があると試しました – venkat14

関連する問題