0

在我的 html 文档中,我有这个:

<button onclick="doFunction()" type="submit" ...>Button</button>

该函数如下所示:

doFunction() {
    var goToThisUrl = "www.spring_controller_method.com?redirectUrl=this_page";
    window.location.href = goToThisUrl;
}

doFunction() 中的 url 是 Java Spring 控制器方法的 url。在该方法中,它操作数据库并返回一个字符串以重定向到它来自的页面:return "redirect:" + redirectUrl。

问题是按钮不起作用。当我单击该按钮时,页面会刷新,但不会对数据库中的数据进行操作。我知道这不是 spring 控制器方法的问题的原因有两个:

  • 我在控制器方法中有一个断点,它没有被击中。
  • 当我使用相同的doFunction()代码并在 Chrome 开发者控制台上运行它时,控制器方法断点被命中,并且数据库中的数据被更改。

有什么想法为什么会发生这种情况?

4

2 回答 2

4

从按钮中删除类型提交

<button onclick="doFunction()" type="button" ...>Button</button>

type="submit" 用于表单提交,这就是 onclick 不起作用的原因。

于 2013-10-25T17:21:49.457 回答
-1

添加return false;以防止默认表单提交。

doFunction() {
    var goToThisUrl = "www.spring_controller_method.com?redirectUrl=this_page";
    window.location.href = goToThisUrl;
    return false;
}
于 2013-10-25T17:21:25.970 回答