【问题标题】:question mark added in middle of url on form submit在表单提交的 url 中间添加问号
【发布时间】:2014-11-14 06:53:34
【问题描述】:

当我单击表单中的提交按钮时,它会添加一个?就在 # 所以 /app/#/pageName 更改为 /app/?#/pageName 之前。这是正常行为吗?代码只是基本的东西。

angular.module('myApp', [])
.controller('MyCtrl', function ($scope) {
    $scope.submit = function() {

    };
});

<form ng-controller="MyCtrl" ng-submit="submit()">
    <button>Submit</button>
</form>

【问题讨论】:

  • 可以添加提交功能吗?
  • 提交功能在那里。它只是空的。我取出了提交到我的服务器的代码,因为它无关紧要。无论有没有它,它都会做同样的事情。
  • 您是否尝试从表单中删除 action 属性?
  • 没有动作属性

标签: angularjs


【解决方案1】:

感谢Angular JS does not allow preventDefault or return false to work on form submission,我终于找到了答案。

在我的ng-submit 中,我必须添加$event 作为将事件传递给我的提交函数的参数,然后我就能够执行event.preventDefault() 来防止路由改变。不确定这是 Angular 中的错误还是预期的行为,但希望这对其他人有帮助。

所以这里是固定的代码:

angular.module('myApp', [])
.controller('MyCtrl', function ($scope) {
    $scope.submit = function(event) {
        event.preventDefault();
    };
});

<form ng-controller="MyCtrl" ng-submit="submit($event)">
    <button>Submit</button>
</form>

【讨论】:

  • 谢谢谢谢谢谢
  • 感谢负载。
猜你喜欢
  • 2013-03-03
  • 2013-08-13
  • 2014-04-12
  • 1970-01-01
  • 2013-01-27
  • 2015-09-11
  • 2017-12-29
  • 2014-01-22
  • 1970-01-01
相关资源
最近更新 更多