2016-06-20 5 views
-2

У меня есть поле ввода в форме, которую я не хочу отправлять. Несмотря на то, что я удалил имя в поле ввода, он все равно отправляется, вероятно, из-за угловой магии.Angularjs, Изменить/Удалить данные на форме submit

Чтобы предотвратить это, я подумал, что если я смогу удалить этот элемент из почтового запроса, это будет решение.

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

, когда форма отправляет POST, имеет поле с днем ​​рождения, несмотря на вход, не имеющий атрибута имени. Итак, как я могу предотвратить его появление.

Форма является HTML шаблон, и контроллер называется на нг подать

+1

Это не вопрос. Предоставьте некоторый код. И что вы пробовали? Как вы построили эту форму? Как вы связали его с контроллером? Как вы отправляете форму с помощью Ajax? –

+0

обновлен с информацией –

+0

Опять же, укажите код: Если вы не являетесь событием, предоставляете функцию, которая отправляет данные, как мы можем себе представить, что происходит? Добавьте функцию, которая отправляет данные, какие данные отправляются и откуда они. Обычно у вас есть один объект для всех данных формы и связать его, например. 'Нг-модель = "form.birthday"'. В контроллере вы можете отправить объект '$ scope.form' с Ajax на внутренний сервер. –

ответ

0

Я думаю, что вы можете искать для disabled собственности:

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

Отредактировано

Вот пример того, как вы можете использовать свойство disabled для отправки нежелательной информации в форме на submit:

<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 –

Смежные вопросы