2016-06-20 48 views
-2

我有一個表單中的輸入字段,我不想發送。即使我刪除了輸入字段的名稱,它仍然可能由於角魔法而發送。Angularjs,修改/刪除表單提交數據

爲了防止這種情況,我想如果我可以從帖子請求中刪除這個項目它將是解決方案。

<input type='radio' ng-model='birthday' ng-value='true'> 

當表單提交的POST有場名爲birthday儘管沒有name屬性輸入。那麼我如何防止它出現。

形式是HTML模板,控制器呼籲NG提交

+1

這不是問題。提供一些代碼。你試過什麼?你是如何構建這種形式的?你是如何將它鏈接到控制器的?你如何使用Ajax發送表單? –

+0

更新了信息 –

+0

再次提供一些代碼:如果您沒有事件提供發送數據的功能,我們怎麼想,發生了什麼?添加發送數據的功能,發送什麼數據以及來自哪裏。通常,對於所有表單數據,您都有一個對象,並將其與例如'NG-模型= 「form.birthday」'。在控制器中,你可以發送帶有Ajax的'$ scope.form'對象到後端。 –

回答

0

我認爲你可能會尋找disabled屬性:

<input type='radio' ng-model='birthday' ng-value='true' disabled="true"> 

編輯

下面是一個如何使用殘疾人財產不用發送不需要的信息與提交表單的例子:

<html> 

    <body> 

     <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 

     <script> 

      var TestApp = angular.module("TestApp", []);   

      TestApp.controller('TestCtrl', function($scope) { 

       $scope.needsBirthdayDisabled = false; 
       $scope.needsBirthday = false; 

       $scope.sendForm = function(form) {   

       $scope.needsBirthdayDisabled = true; //if you comment this line, the "yep"'s input value will be sent with the form 

       form.$submitted = true;  

       }; 

      }); 

     </script> 

     <div ng-app="TestApp" ng-controller="TestCtrl"> 

      <!-- the method is set to GET for test purpose (so we can easily see the sent values on the URL) --> 
      <form action="" method="GET" name="myForm" ng-submit="sendForm(this)"> 

       <div> 
        <label for="name">Name</label> 
        <input type="text" name="name" ng-model="name"/> 
       </div> 

       <div ng-show="needsBirthday"> 
        <label for="birthday">Birthday</label> 
        <input type="text" name="birthday" ng-model="birthday"/> 
       </div> 

       <div> 
        <label>Needs Birthday</label>    
        Yep <input type='radio' name="yep" ng-model='needsBirthday' ng-value='true' ng-disabled="needsBirthdayDisabled">          
       </div> 

       <input type="submit" value="Go!"/> 

      </form> 

     </div> 

    </body> 

</html> 
+0

我不能使用它,因爲它用於顯示或隱藏部分表單,但不包含任何後端應該需要的數據。 –

+0

您可以在提交表單之前將此屬性設置爲'true',之後將其值返回爲'false'(您可以使用scope屬性) – demarchisd

+0

如果驗證運行,它們會阻止表單提交,但值已被設置爲true –