html – 具有angularJS的表单上的空操作属性

前端之家收集整理的这篇文章主要介绍了html – 具有angularJS的表单上的空操作属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图在AngularJS应用程序中以正常方式提交表单但我遇到了一个问题:似乎我必须指定action属性.

根据HTML规范(http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#form-submission-algorithm):

If action is the empty string,let action be the document’s address of
the form document.

但是,如果未填充action属性,AngularJS将拒绝提交表单.
我找到的解决方法是使用action =“#”,但这不是一个可接受的解决方案,因为我可能会使用哈希,我不希望它被重写.

有没有人遇到过这个问题?

编辑:我不想对这个表单使用angular,我只是想以“旧”的方式提交它

最佳答案
在库中,您可以看到Angular在没有操作的情况下侦听表单的事件提交:https://github.com/angular/angular.js/blob/b9fa5c5a6781f4e1ec337f27d55c69db491a6555/src/ng/directive/form.js#L331

你可以评论这一行,它有效,但我反对编辑库的代码.

几行之后,你可以看到Angular正在监听事件$destroy,可以删除此事件的动作.

因此,为了避免修改Angular,您只需触发表单的此事件:

angular.element(document).ready(function(){
    angular.element(document.querySelector("#loginForm")).triggerHandler("$destroy")‌​; 
});

上面几行描述了这种行为的原因:

we can’t use jq events because if a form is destroyed during submission the default action is not prevented.

相关问题是:https://github.com/angular/angular.js/issues/1238

猜你在找的HTML相关文章