改变button文字onclick

当我点击这个button时,我想要改变这个值。 HTML:

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

使用Javascript:

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

这个button现在正在显示打开的窗帘,我想让它改成closures窗帘,这是正确的吗?

如果我已经正确地理解了你的问题,你想在“打开窗帘”和“closures窗帘”之间切换 – 如果它closures,则改为“打开窗帘”,反之亦然。 如果这是你所需要的,这将工作。

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

请注意,您不需要在document.getElementById("myButton1")上下文中调用document.getElementById("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"; } 

这似乎只是一个简单的错字错误:

  1. 更改后除去分号(),函数声明中不应该有任何分号。
  2. 在myButton1声明前添加一个报价。

更正后的代码:

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

更快,更简单的解决scheme是将代码包含在button中,并使用关键字this来访问button。

 <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> 

这可以用vbs代码轻松完成(因为我对js不太熟悉)

 <input type="button" id="btn" Value="Close" onclick="check"> <script Language="VBScript"> sub check if btn.Value="Close" then btn.Value="Open" end sub </script> 

和你完成,但是这改变了名称只显示,不改变function{onclick},我做了一些研究如何做第二个,似乎没有像

 btn.onclick = ".." 

但我想出了一个使用<“span”>标签的方式是这样的:

 <script Language="VBScript"> Sub function1 MsgBox "function1" span.InnerHTML= "<Input type=""button"" Value=""button2"" onclick=""function2"">" End Sub Sub function2 MsgBox "function2" span.InnerHTML = "<Input type=""button"" Value=""button1"" onclick=""function1"">" End Sub </script> <body> <span id="span" name="span" > <input type="button" Value="button1" onclick="function1"> </span> </body> 

尝试一下,改变子函数1和子函数2中的代码,基本上所有你需要知道的使它在jscript中是行

 span.InnerHTML = "..." 

剩下的就是你想要执行的代码

希望这有助于:D

您在id =上缺less开头引号,并且在函数声明后面有一个分号。 另外,input标签不需要结束标签。

这工作:

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

尝试这个,

 <input type="button" id="myButton1" value="Open Curtain" onClick="javascript:change(this);"></input> <script> function change(ref) { ref.value="Close Curtain"; } </script> 
 <input type="button" class="btn btn-default" value="click me changtext" id="myButton1" onClick="changetext()" > <script> function changetext() { var elem = document.getElementById("myButton1"); if (elem.value=="click me change text") { elem.value = "changed text here"; } else { elem.value = "click me change text"; } } </script> 

如果不反对或者可能已经在使用jQuery,你可以做到这一点,而不需要使用突破性的js的方法。 希望能帮助到你。 https://en.wikipedia.org/wiki/Unobtrusive_JavaScript还喜欢参考,; https ://stackoverflow.com/a/3910750/4812515对此进行讨论。

HTML:

  <input type="button" value="Open Curtain" id=myButton1"></input> 

使用Javascript:

  $('#myButton1').click(function() { var self = this; change(self); }); function change( el ) { if ( el.value === "Open Curtain" ) el.value = "Close Curtain"; else el.value = "Open Curtain"; } 
 <!DOCTYPE html> <html> <head> <title>events2</title> </head> <body> <script> function fun() { document.getElementById("but").value = "onclickIChange"; } </script> <form> <input type="button" value="Button" onclick="fun()" id="but" name="but"> </form> </body> </html> 
 This is simple way to change Submit to loading state <button id="custSub" type="submit" class="button left tiny" data-text-swap="Processing.. &nbsp;">Submit &nbsp;<i class="fa fa-angle-double-right"></i></button> <script> jQuery(document).ready(function ($) { $("button").on("click", function() { var el = $(this); if (el.html() == el.data("text-swap")) { el.html(el.data("text-original")); } else { el.data("text-original", el.html()); el.html(el.data("text-swap")); } setTimeout(function () { el.html(el.data("text-original")); }, 500); }); }); </script>