为什么没有 'return false' 文本变回来

Why does the text change back without 'return false'

我的表单上有一个简单的 HTML 按钮,脚本如下:

$(document).ready(function () {

    $("#btn1").click(function () {
        $("#btn1").text("Button clicked");
        return false;
    });
});

使用 return false,它按我预期的方式工作 - 我单击按钮,其文本变为 'Button clicked'。没有 'return false',它会改变,但随后会变回来。

完全JQuery菜鸟,为什么我需要'return false'?

表单中的一个 <button> 提交了表单,这就是它返回的原因,页面重新加载重置所有内容 javascript 更改,所以你看到更改,它会立即重新加载页面表单提交。

return false 阻止在单击按钮时提交表单。

注意:<button> 元素的默认类型为 submit,因此它将始终提交嵌套在其中的表单。

正如@adeneo 所说,您的表单正在发送,因此页面将重新加载。此外,如果您不想使用 return false;,您可以通过将事件参数传递给您的函数来使用 preventDefault()

$(document).ready(function () {
    $("#btn1").click(function (ev) {
        ev.preventDefault();
        $("#btn1").text("Button clicked");
    });
});

希望这对您有所帮助,

如果 <button> 不打算提交表单,则不要使用 return false; 或其他解决方法,而是使按钮成为正确的类型。

<button id="btn1" type="button">

点击后停止提交。它现在这样做的原因是因为 button's default type is submit(它有 3 种可能的类型:提交、按钮和重置)。