更改按钮文本 onclick

IT技术 javascript html button onclick
2021-02-04 14:28:09

当我单击myButton1按钮时,我希望值更改为Close Curtainfrom Open Curtain
HTML:

<input onclick="change()" type="button" value="Open Curtain" id="myButton1"></input>

Javascript:

function change();
{
    document.getElementById("myButton1").value="Close Curtain";
}

按钮现在显示打开的窗帘,我希望它更改为关闭窗帘,这是正确的吗?

6个回答

如果我正确理解了您的问题,您想在“打开窗帘”和“关闭窗帘”之间切换——如果关闭,则更改为“打开窗帘”,反之亦然。如果这就是您所需要的,这将起作用。

function change() // no ';' here
{
    if (this.value=="Close Curtain") this.value = "Open Curtain";
    else this.value = "Close Curtain";
}

请注意,您不需要使用document.getElementById("myButton1")内部更改,因为它是在上下文调用myButton1——我所说的上下文意思是您稍后将在阅读有关 JS 的书籍时了解的内容。

更新

我错了。不像我之前说的,this不会引用元素本身。你可以使用这个:

function change() // no ';' here
{
    var elem = document.getElementById("myButton1");
    if (elem.value=="Close Curtain") elem.value = "Open Curtain";
    else elem.value = "Close Curtain";
}
Chromethis上的@ParthThakkar确实设置为按钮。
2021-03-14 14:28:09
哦,是的……正确。我认为它会起作用,但是当我看到你的评论时,我把它弄乱了,但它失败了……我会做一个编辑
2021-03-24 14:28:09
恐怖!我刚试过 chrome,它没有。它指的是 DOMWindow
2021-04-05 14:28:09
在我自己遇到了一些问题(并意识到我只是有一个语法错误)之后,这就是我发现的工作:this.innerHTML =. this.value在 Firefox v28 中使用对我不起作用。这是一个实际的按钮元素,而不是一个输入按钮。
2021-04-11 14:28:09
不是'onClick',帕斯。您必须传递对对象的引用: onClick="change(this)" 然后在 JS 中: function change(button) { print button.value; }
2021-04-13 14:28:09

使用<button>元素(或其他元素?)时,设置“值”不会更改文本,但innerHTML更改

var btn = document.getElementById("mybtn");
btn.value = 'my value'; // will just add a hidden value
btn.innerHTML = 'my text';

当打印到控制台时:

<button id="mybtn" class="btn btn-primary" onclick="confirm()" value="my value">my text</button>

这绝对帮助了我。效果很好。在我看来,这是所有答案中最简单最直接的答案。innerHTML更改按钮的视觉文本。value=""不可见,只保存隐藏数据。多谢,伙计。
2021-03-17 14:28:09

似乎只有一个简单的拼写错误:

  1. 去掉change()后的分号,函数声明中不应该有分号。
  2. 在 myButton1 声明前添加引号。

更正的代码:

<input onclick="change()" type="button" value="Open Curtain" id="myButton1" />
...
function change()
{
    document.getElementById("myButton1").value="Close Curtain"; 
}

一个更快更简单的解决方案是将代码包含在您的按钮中,并使用关键字 this 来访问该按钮。

<input onclick="this.value='Close Curtain'" type="button" value="Open Curtain" id="myButton1" />

有很多方法。这应该也适用于所有浏览器,并且您不必再使用 document.getElementById,因为您将元素本身传递给函数。

<input type="button" value="Open Curtain" onclick="return change(this);" />

<script type="text/javascript">
function change( el )
{
    if ( el.value === "Open Curtain" )
        el.value = "Close Curtain";
    else
        el.value = "Open Curtain";
}
</script>

将此函数添加到脚本中

function myFunction() {

                var btn = document.getElementById("myButton");

                if (btn.value == "Open Curtain") {
                    btn.value = "Close Curtain";
                    btn.innerHTML = "Close Curtain";
                }
                else {
                    btn.value = "Open Curtain";
                    btn.innerHTML = "Open Curtain";
                }

            }

并编辑按钮

<button onclick="myFunction()" id="myButton" value="Open Curtain">Open Curtain</button>