单击表单内的按钮时防止刷新页面

IT技术 javascript html
2021-01-09 16:15:13

我在表单内使用按钮时遇到问题。我想要那个按钮来调用函数。它确实如此,但它刷新了页面,但产生了不希望的结果。

我的简单代码是这样的

<form method="POST">
    <button name="data" onclick="getData()">Click</button>
</form>

单击按钮时,该函数会在页面刷新时调用,这会重置我之前的所有请求,这些请求会影响作为前一个请求的结果的当前页面。

我应该怎么做才能防止页面刷新?

6个回答

添加type="button"到按钮。

<button name="data" type="button" onclick="getData()">Click</button>

type按钮的默认值submit,它会在您的案例中自行发布表单并使其看起来像刷新。

这里给出了完美的答案
2021-03-15 16:15:13
您还可以添加return false;到 onclick:onclick="getData(); return false;"
2021-03-17 16:15:13
除了这会阻止 HTML5 表单验证(例如对于 type="email" 的输入)。
2021-03-24 16:15:13
这是最好的选择。虽然“返回假”可能会内联工作,但我知道在添加事件侦听器时没有这样的选项。指定 type="button" 确实可以节省一天的时间。
2021-04-04 16:15:13
这实际上是此类问题的“官方”解决方案。返回 false 可能也有效,但类型按钮永远不会失败。
2021-04-09 16:15:13

getData()返回假。这将修复它。

<form method="POST">
    <button name="data" onclick="return getData()">Click</button>
</form>
的确。onclick函数必须返回 false,而不是getData
2021-03-15 16:15:13
您不需要更改函数 - 您只需使用 onclick="getData(); return false;"
2021-03-24 16:15:13
这就是我所说的,但是好的,修改了答案,使其更加清晰。
2021-04-06 16:15:13
type="button" 真的很重要。
2021-04-06 16:15:13

您需要做的就是放置一个类型标签并制作类型按钮。

<button id="btnId" type="button">Hide/Show</button>

这解决了问题

按钮的默认行为在表单内时为提交类型,将其更改为按钮类型时,可以避免发布
2021-03-14 16:15:13
你能详细说明并解释原因吗?
2021-03-20 16:15:13

问题是它触发了表单提交。如果您创建该getData功能,return false则它应该停止提交表单。

或者,您也可以使用preventDefault事件对象方法:

function getData(e) {
    e.preventDefault();
}
<button name="data" onclick="getData($event)">点击</button>
2021-03-24 16:15:13
将传递的点击事件。
2021-03-27 16:15:13
除了(没有进一步修改)事件对象不会被传递。
2021-03-28 16:15:13

HTML

<form onsubmit="return false;" id="myForm">
</form>

jQuery

$('#myForm').submit(function() {
    doSomething();
});
$('.myForm) 应该是 $('#myForm)
2021-03-15 16:15:13