2017-01-03 121 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" /> 

//在controller.js

$scope.add = function() { 

     $scope.init(); 

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

    }; 

如何解決這一問題? 謝謝

+1

可以是形式是無效的。你提出了一個條件,試圖刪除表單標籤的ng-submit中的mainForm。$ valid。如果您希望表單有效,請輸入alid數據 –

+0

使用Angular檢查器查看 – Mikkel

+0

表單的$ valid屬性是否可以添加plunkr? –

回答

0

你的控制器在form標籤後面注入,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