首页 > 解决方案 > 为什么 jQuery 提交没有将填充有 ng-value 的数据发送到服务器端?

问题描述

我有一个带有一些隐藏输入的表单,我在表单内有一些选项(ul-li's)和每个 li 的 ng-click,如下面的代码:

<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的值时,但如果我通过jQuery设置actionToDoInput的值它可以工作:

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

我相信这是由于 Angular 和 jQuery 的混合,因为如果我打开浏览器检查器,我可以看到 Angular 代码工作正常,只是 .submit() 不会将数据发送到服务器端。

如果没有 jquery 提交,我怎样才能让它工作?

标签: javascriptjqueryangularjs

解决方案


推荐阅读