Javascript 背景色不';不要永远改变

Javascript 背景色不';不要永远改变,javascript,html,css,Javascript,Html,Css,我试图在单击按钮时更改背景色。但是,当点击按钮时,它会改变一秒钟的颜色,并返回到页面开头设置的原始颜色 如何永久设置颜色 Javascript: 功能设置背景(彩色) { document.body.style.backgroundColor=颜色; } HTML: 更改DOM会更改当前页面 单击提交按钮将提交其所在的表单 提交表单将从服务器加载一个新(尽管可能相同)页面(不会保留本地DOM更改) 因此,您正在更改当前页面,然后立即将其丢弃并加载一个干净的页面 根据您的具体目标,您可以:

我试图在单击按钮时更改背景色。但是,当点击按钮时,它会改变一秒钟的颜色,并返回到页面开头设置的原始颜色

如何永久设置颜色

Javascript:

功能设置背景(彩色)
{
document.body.style.backgroundColor=颜色;
}
HTML:


更改DOM会更改当前页面

单击提交按钮将提交其所在的表单

提交表单将从服务器加载一个新(尽管可能相同)页面(不会保留本地DOM更改)

因此,您正在更改当前页面,然后立即将其丢弃并加载一个干净的页面


根据您的具体目标,您可以:

  • 防止使用JavaScript提交表单(如果使用
    onclick
    属性,通常的方法是
    返回false
    ,但现在我们更喜欢
    addEventListener
    而不是
    onclick
    属性)。如果您打算无条件地这样做,您可能会问,首先为什么要使用提交按钮(而不是常规按钮)(尽管这很酷)
  • 使用submit按钮的名称/值使服务器生成不同的HTML文档(使用您想要的颜色),而不是使用JS
  • 在本地存储有关颜色变化的数据(例如,在cookie或localStorage中),并在加载文档时让JS读取这些数据,然后重复更改

在评论中:

是的。我需要提交一份表格,然后更改背景颜色

那么第一个选项将无法使用(除非您还将Ajax问题复杂化)


使用服务器端代码进行更改将是干扰最小的方法。

您使用的是提交按钮,这将导致页面被提交回服务器,然后重新加载。使用并删除“type”。@Geoffrey-
元素的默认
type
提交
,那没用,我的错。。设置按钮type=“button”-它仍然可以单击,只是不提交。您正在尝试提交表单吗?然后改变背景颜色?