Подтвердить что ты не робот

Изменение текста кнопки onclick

Когда я нажимаю кнопку myButton1, я хочу изменить значение на " Close Curtain из " Open Curtain.
HTML:

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

Javascript:

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

Кнопка отображает открытую шторку прямо сейчас, и я хочу, чтобы она изменилась, чтобы закрыть шторку, это правильно?

4b9b3361

Ответ 1

Если я правильно понял ваш вопрос, вы хотите переключиться между "Open Curtain" и "Close Curtain" - перейдя на "открытый занавес", если он закрыт или наоборот. Если это то, что вам нужно, это сработает.

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

Обратите внимание, что вам не нужно использовать внутреннее изменение document.getElementById("myButton1"), поскольку оно вызывается в контексте myButton1 - что я имею в виду под контекстом, который вы узнаете позже, о чтении книг о JS.

UPDATE

Я был неправ. Не так, как я сказал ранее, this не будет ссылаться на сам элемент. Вы можете использовать это:

function change() // no ';' here
{
    var elem = document.getElementById("myButton1");
    if (elem.value=="Close Curtain") elem.value = "Open Curtain";
    else elem.value = "Close Curtain";
}

Ответ 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" />

Ответ 3

При использовании элемента <button> (или, может быть, других?) Установка 'value' не изменит текст, но будет произведен 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>

Ответ 4

Есть много способов. И это должно работать и во всех браузерах, и вам больше не нужно использовать 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>

Ответ 5

Вам не хватает вводной цитаты на id =, и после объявления функции у вас есть точка с запятой. Кроме того, тегу ввода не требуется закрывающий тег.

Это работает:

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

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

Ответ 6

это можно легко сделать с помощью кода 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>

и вы закончили, однако это изменяет имя только для отображения и не изменяет функцию {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>

попробуйте сами, измените коды в sub function1 и sub function2, в основном все, что вам нужно знать, чтобы сделать это в jscript, это строка

span.InnerHTML = "..." 

остальное - ваш код, который вы хотите выполнить

надеюсь, что это поможет: D

Ответ 7

Если вы предпочитаете связывать свои события вне html-разметки (в javascript), вы можете сделать это следующим образом:

document.getElementById("curtainInput").addEventListener(
  "click",
  function(event) {
    if (event.target.value === "Open Curtain") {
      event.target.value = "Close Curtain";
    } else {
      event.target.value = "Open Curtain";
    }
  },
  false
);
<!doctype html>
<html>
<body>
  <input 
         id="curtainInput" 
         type="button" 
         value="Open Curtain" />
</body>

</html>

Ответ 8

Попробуйте это,

<input type="button" id="myButton1" value="Open Curtain" onClick="javascript:change(this);"></input>
<script>
function change(ref) {
    ref.value="Close Curtain";
}
</script>

Ответ 9

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

Ответ 10

Если вы не против или уже можете использовать jQuery, вы можете сделать это без подхода к использованию навязчивых js. Надеюсь, поможет. https://en.wikipedia.org/wiki/Unobtrusive_JavaScript Также как ссылку, fooobar.com/questions/41340/... для обсуждения этого.

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";
          }

Ответ 11

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

Ответ 12

Это работало нормально для меня. У меня было несколько кнопок, которые я хотел переключить текст входного значения с "Добавить диапазон" на "Удалить диапазон"

<input type="button" onclick="if(this.value=='Add Range') { this.value='Remove Range'; } else { this.value='Add Range'; }" />

Ответ 13

Добавьте эту функцию в скрипт

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>

Ответ 14

Или более просто, не называя элемент (с элементом 'button'):

<button onclick="toggleLog(this)">Stop logs</button>

и скрипт:

var bWriteLog = true;

function toggleLog(elt) {

  bWriteLog = !bWriteLog;
  elt.innerHTML = bWriteLog ? 'Stop logs' : 'Watch logs';
}

Ответ 15

var count=0;
document.getElementById("play").onclick = function(){


if(count%2 =="1"){

                document.getElementById("video").pause();
                document.getElementById("play").innerHTML ="Pause";
            }else {

            document.getElementById("video").play();
            document.getElementById("play").innerHTML ="Play";

            }
            ++count;

Ответ 16

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>