点击表单内的按钮会导致页面刷新。
点击表单内的按钮会导致页面刷新。
我在Angular中有一个表单,其中有两个按钮标签。一个按钮在ng-click
上提交表单。另一个按钮纯粹用于使用ng-click
进行导航。然而,当点击这个第二个按钮时,AngularJS会导致页面刷新,触发404错误。我在函数中设置了一个断点,它会触发我的函数。如果我做以下任何一项,它就会停止:\n
- \n
- 如果我删除
ng-click
,按钮就不会导致页面刷新。 - 如果我将函数中的代码注释掉,它就不会导致页面刷新。
- 如果我将按钮标签更改为锚标签(
),那么它就不会导致刷新。
\n
\n
\n
\n后者似乎是最简单的解决方法,但为什么AngularJS会在我的函数之后运行任何导致页面重新加载的代码呢?看起来像是一个bug。\n这是表单:\n
\n这是控制器方法:\n
$scope.showChangePassword = function() { $scope.selectedLink = "changePassword"; };
点击表单内的按钮会导致页面刷新的原因是默认的事件处理程序会触发页面刷新。可以通过阻止默认事件处理程序来解决这个问题。具体解决方法如下:
在HTML中,给按钮添加ng-click属性,并将其绑定到一个函数上:
<button ng-click="saveUser($event)">
在JavaScript中,编写saveUser函数来处理按钮点击事件,并在函数中调用event.preventDefault()来阻止默认的事件处理程序的触发:
$scope.saveUser = function (event) { event.preventDefault(); // your code }
对于在SharePoint表单中使用AngularJS的情况,可能还需要添加event.stopPropagation()来停止事件的传播。
这种方法对我来说非常有效!