为什么文本变回来而不“返回假”

Why does the text change back without 'return false'

本文关键字:返回 返回假 文本 回来 为什么      更新时间:2023-09-26

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

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

使用 return false ,它按我预期工作 - 我单击按钮,其文本更改为"按钮单击"。 如果没有"return false",它会改变,但随后又变回来。

在这里完成 JQuery 菜鸟,为什么我需要"返回假"?

表单

中的<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">

单击后它将停止提交。它现在这样做的原因是按钮的默认类型是提交(它有 3 种可能的类型:提交、按钮和重置)。