Почему jQuery submit не отправляет данные, заполненные ng-значением, на сторону сервера?

#javascript #jquery #angularjs

#javascript #jquery #angularjs

Вопрос:

У меня есть форма с некоторыми скрытыми входными данными, у меня есть несколько параметров внутри формы (ul-li) и ng-click для каждого li, как в следующем коде:

 <form>
<input type="hidden" id="actionToDoInput" name="action" ng-value="actionToDo"/>
<ul>
<li ng-click="submitForm($event)" data-action="DO_THIS_ACTION1">Submit this form!</li>
<li ng-click="submitForm($event)" data-action="DO_THIS_ACTION2">Submit this form!</li>
<li ng-click="submitForm($event)" data-action="DO_THIS_ACTION3">Submit this form!</li>


...
</ul>
</form>
  

На стороне Angular jQuery:

 ...
$scope.actionToDo = "";
$scope.submitForm = submitForm;
function submitForm(event){
   $this = $(event.currentTarget); // li
   $scope.actionToDo = $this.data('action');
   $this.closest('form').submit();
}
  

Тогда на стороне сервера значение action равно null, когда я ожидаю значение actionToDo, но если я задаю значение actionToDoInput через jQuery, это работает:

 $this.closest('form').find('#actionToDoInput').val( $this.data('action') );
  

Я полагаю, что это связано с сочетанием Angular и jQuery, потому что, если я открою инспектор браузера, я увижу, что код angular работает нормально, просто .submit() не отправляет данные на серверную часть.

Как я могу заставить его работать без jquery submit?

Комментарии:

1. Можете ли вы также вставить серверный код, связанный с этим? 🙂

2. <?php print_r( $_POST ); ?>

3. Вы определили метод формы как «POST», а ваш внутренний путь — как действие?

4. Не имеет смысла использовать jQuery для этого вообще