我正在调用$('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>
答案 0 :(得分:3)
您可以为标记添加隐藏的提交按钮:
<input type="submit" class="submit" style="display: none" />
然后,让jQuery发送一个点击提交按钮,而不是直接提交表单:
$('.submit', $(event.target.form)).click();
通过这样做,Angular将接管并尊重您的ng-submit属性。