2016-02-04 264 views
0

我創建了一個使用Angular和Ionic的混合應用程序,但是當我填寫我的表單並按下GO按鈕或Android上的箭頭按鈕時,它會提交我的表單,即使它不是有效的然而。我試圖檢測到按鍵和return:false;,但它仍然提交。'GO'按鈕提交表單

<form novalidate name="questionForm" id="questionForm" ng-submit="submit()"> 
     <input name="question" ng-model="form.question" ng-minlength="10" required autofocus/> 
     <div id="answers"> 
<input ng-model="choice.choice" placeholder="Voeg antwoord toe" required ng-keypress="disableGo()" /> 
     </div> 
     <button type="submit" ng-disabled="questionForm.$invalid" class="circle-btn btn-send ion-ios-paperplane"></button> 
    </form> 

按鍵時功能:

$scope.disableGo = function() { 
     var code = (event.keyCode ? event.keyCode : event.which); 
     if ((code == 13) || (code == 10)) { 
      return false; 
     } 
    }; 

回答

1

使用type='button'而不是submit

你不需要disableGo

試試這個:

<form novalidate name="questionForm" id="questionForm"> 
 
    <input name="question" ng-model="form.question" ng-minlength="10" required autofocus/> 
 
    <div id="answers"> 
 
    <input ng-model="choice.choice" placeholder="Voeg antwoord toe" required ng-keypress="disableGo()" /> 
 
    </div> 
 
    <button type="button" ng-disabled="questionForm.$invalid" class="circle-btn btn-send ion-ios-paperplane" ng-click="submit()"></button> 
 
</form>

使用ng-clickbutton,而不是ng-submit

+0

哦,沒錯,那是有效的。謝謝。我會在5分鐘內接受你的回答 – Greg

1

添加類型到你的按鈕按鈕可以幫助你

<button type="button"></button> 
+0

然後我的表單就不會被提交時,我按下提交按鈕。 Angular使用'ng-submit'so它尋找一個'type = submit'button – Greg

1

您可以檢查此

在控制器中添加功能:

$scope.canSubmit = function() { 
     return ($scope.questionForm.$dirty && $scope.questionForm.$invalid) || $scope.questionForm.$pristine 
}; 

在HTML:使用type="button"

<button type="button" ng-disabled="canSubmit()" class="circle-btn btn-send ion-ios-paperplane"></button>