gpt4 book ai didi

javascript - Angular+Jquery - 编程表单提交导致重定向

转载 作者:行者123 更新时间:2023-12-01 02:02:40 25 4
gpt4 key购买 nike

我正在尝试编写一个包含 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);
};
});

谢谢,亚龙

最佳答案

所以...以防万一有人遇到同样的问题。

解决方案是使用JQuery触发提交。理想情况下应该是:

angular.element($scope.inputElem[0].form).trigger('submit');

但是,Angular 中存在一些错误,因此我发现的当前解决方法是:

angular.element($scope.inputElem[0].form).find('[type=submit]').trigger('click');

干杯。

关于javascript - Angular+Jquery - 编程表单提交导致重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18602479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com