Yar*_*ron 2 javascript forms jquery angularjs
我正在尝试编写一个包含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);
};
});
Run Code Online (Sandbox Code Playgroud)
谢谢你,亚伦
Yar*_*ron 11
所以...如果有人有同样的问题.
解决方案是使用JQuery触发提交.理想情况下它将是:
angular.element($scope.inputElem[0].form).trigger('submit');
Run Code Online (Sandbox Code Playgroud)
但是,Angular中存在一些错误,因此我发现的当前工作是:
angular.element($scope.inputElem[0].form).find('[type=submit]').trigger('click');
Run Code Online (Sandbox Code Playgroud)
干杯.
| 归档时间: |
|
| 查看次数: |
3051 次 |
| 最近记录: |