你如何强制jQuery表单提交调用以使用角度ng-submit?

时间:2015-02-18 02:00:51

标签: jquery angularjs form-submit

我正在调用$('form')。在jQuery函数中提交。此表单的HTML包含角度ng-submit绑定。我希望jQuery调用尊重角度ng-submit。它目前正在使用默认提交功能(包括页面刷新)。

如何强制jQuery使用ng-submit提供的函数而不是默认的提交函数?以下是相关的代码摘录。

如果我能提供任何有用的信息,请告诉我。

$scope.do_submit = function(){
  // some logic here
};

$("#input").autocomplete({
  // some logic
  
  select: function(event, ui){
    $(event.target).val(ui.item.value);
    
    //this calls the default submit, not the ng-submit for the form.
    $(event.target.form).submit();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>


<form id='text_form' ng-submit="do_submit()"><input id='input' ng-model="user_answer" autofocus></form>

1 个答案:

答案 0 :(得分:3)

您可以为标记添加隐藏的提交按钮: <input type="submit" class="submit" style="display: none" />

然后,让jQuery发送一个点击提交按钮,而不是直接提交表单: $('.submit', $(event.target.form)).click();

通过这样做,Angular将接管并尊重您的ng-submit属性。