按钮onclick Javascript函数失败,但该函数正常工作

按钮onclick Javascript函数失败,但该函数正常工作,javascript,html,function,button,dom-events,Javascript,Html,Function,Button,Dom Events,在我的html文档中,我有以下内容: <button onclick="doFunction()" type="submit" ...>Button</button> doFunction()中的url是Java Spring控制器方法的url。在该方法中,它操纵数据库并返回一个字符串以重定向到它来自的页面:return“redirect:”+redirectUrl 问题是按钮坏了。当我单击按钮时,页面会刷新,但数据库中的数据不会被操作。我之所以知道spring con

在我的html文档中,我有以下内容:

<button onclick="doFunction()" type="submit" ...>Button</button>
doFunction()中的url是Java Spring控制器方法的url。在该方法中,它操纵数据库并返回一个字符串以重定向到它来自的页面:return“redirect:”+redirectUrl

问题是按钮坏了。当我单击按钮时,页面会刷新,但数据库中的数据不会被操作。我之所以知道spring controller方法没有问题,是因为两个原因:

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

你知道为什么会这样吗

Add
返回false以防止默认表单提交

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

添加
返回false以防止默认表单提交

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

添加
返回false以防止默认表单提交

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

添加
返回false以防止默认表单提交

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

从按钮中删除类型submit,如

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

type=“submit”用于表单提交,这就是为什么onclick不起作用。

从按钮中删除type submit

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

type=“submit”用于表单提交,这就是为什么onclick不起作用。

从按钮中删除type submit

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

type=“submit”用于表单提交,这就是为什么onclick不起作用。

从按钮中删除type submit

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


type=“submit”用于表单提交,这就是为什么onclick不起作用的原因。

我猜您的表单正在提交(button type=“submit”),首先返回false以防止函数中的默认操作。我猜您的表单正在提交(button type=“submit”),返回false以首先防止函数中的默认操作。我猜您的表单正在提交(button type=“submit”),返回false以首先防止函数中的默认操作。我猜您的表单正在提交(button type=“submit”),返回false以首先防止函数中的默认操作。将
返回false将阻止它命中函数中的任何其他逻辑。是的。:)或者,您可以在函数之外的
onclick
中执行此操作,如下所示:
onclick=“doFunction();return false;”
put
return false将阻止它命中函数中的任何其他逻辑。是的。:)或者,您可以在函数之外的
onclick
中执行此操作,如下所示:
onclick=“doFunction();return false;”
put
return false将阻止它命中函数中的任何其他逻辑。是的。:)或者,您可以在函数之外的
onclick
中执行此操作,如下所示:
onclick=“doFunction();return false;”
put
return false将阻止它命中函数中的任何其他逻辑。是的。:)或者,您可以在函数之外的
onclick
中执行此操作,如下所示:
onclick=“doFunction();return false;”
只需说明将
类型
值更改为“button”(就像您在回答中所做的那样)非常重要。如果只删除
type=“submit”
属性,它将返回默认值,也就是“submit”。“button”是唯一一个没有与之相关的内在动作的值。如果我从button中删除type属性,它的工作方式类似于submit,那么我就遇到了这个问题。不知道是什么问题。然后我替换了提交按钮。是的。HTML规范中的所有内容:-“此属性声明按钮的类型…提交:创建提交按钮。这是默认值。”只需澄清将
类型
值更改为“按钮”(就像您在回答中所做的那样)非常重要。如果只删除
type=“submit”
属性,它将返回默认值,也就是“submit”。“button”是唯一一个没有与之相关的内在动作的值。如果我从button中删除type属性,它的工作方式类似于submit,那么我就遇到了这个问题。不知道是什么问题。然后我替换了提交按钮。是的。HTML规范中的所有内容:-“此属性声明按钮的类型…提交:创建提交按钮。这是默认值。”只需澄清将
类型
值更改为“按钮”(就像您在回答中所做的那样)非常重要。如果只删除
type=“submit”
属性,它将返回默认值,也就是“submit”。“button”是唯一一个没有与之相关的内在动作的值。如果我从button中删除type属性,它的工作方式类似于submit,那么我就遇到了这个问题。不知道是什么问题。然后我替换了提交按钮。是的。HTML规范中的所有内容:-“此属性声明按钮的类型…提交:创建提交按钮。这是默认值。”只需澄清将
类型
值更改为“按钮”(就像您在回答中所做的那样)非常重要。如果只删除
type=“submit”
属性,它将返回默认值,也就是“submit”。“button”是唯一一个没有与之相关的内在动作的值。如果我从button中删除type属性,它的工作方式类似于submit,那么我就遇到了这个问题。不知道是什么问题。然后我替换了提交按钮。是的。这些都在HTML规范中:-“此属性声明按钮的类型…提交:创建提交按钮。这是默认值。”