我正在尝试编写一个包含ngsSubmit的表单。 按Enter并单击提交按钮按预期工作(调用我为ng-submit提供的方法,就是这样。)
但是,在某些情况下,我还希望在实际提交之前进行一些预处理,因此我尝试使用JQuery的submit()以编程方式触发提交。
这会导致ng-submit处理程序触发,并且还会发送通常刷新整个页面的表单。
任何想法如何解决这个或为什么会发生???
此处示例(“点击我”显示不良行为) http://jsfiddle.net/Yf5tf/
<form ng-app="myApp" ng-submit="submitMe()" ng-controller="myCtrl">
<input type="text" ng-model="value"></input>
<input type="submit" value="Go!"></input>
<div ng-click="progSubmit()">click me</div>
</form>
angular.module('myApp', [])
.controller('myCtrl', function($scope, $element, $timeout) {
$scope.submitMe = function() { alert ("hi"); };
$scope.progSubmit = function() {
$timeout(function() {
var inputElem = $element.find("input");
angular.element(inputElem[0].form).submit();
}, 0);
};
});
谢谢, 亚龙
答案 0 :(得分:11)
所以......如果有人有同样的问题。
解决方案是使用JQuery触发提交。 理想情况下会是:
angular.element($scope.inputElem[0].form).trigger('submit');
然而,Angular中存在一些错误,因此我发现的当前工作是:
angular.element($scope.inputElem[0].form).find('[type=submit]').trigger('click');
干杯。