使用onclick更改按钮文本

时间:2018-10-01 11:52:49

标签: javascript html css

我有一个“保存”按钮。当我单击此按钮时,它消失了,并且显示“取消保存”按钮。以下Javascript可以正常工作:

git clone ssh://git@someservice.someurl:someport/git-server/repos/somerepo)

这是我的按钮:

    function saveFunction(id){
        var ie=document.all&&!window.opera? document.all : 0
        var frmObj=ie? ie[id] : document.getElementById(id)
        var toObj=ie? ie['unsave'] : document.getElementById('unsave')
        frmObj.style.display='none';
        toObj.style.display='inline';
        toObj.value=frmObj.innerHTML
    }

这是CSS(隐藏“取消保存”按钮):

<form id="save-form" method="" action="" novalidate="novalidate">
    <button id="save" type="button" onclick="saveFunction(this.id)">Save</button>
    <button id="unsave" type="button" class="hide" onclick="unsaveFunction(this.id)">Unsave</button>
</form>

问题是我还希望“取消保存”按钮(单击时)消失,而要显示“保存”按钮。因此,目前它仅以一种方式起作用:.hide { display:none; } ,但我也希望它以另一种方式起作用:Save --> Unsave

我试图复制Javascript函数,更改其属性,以便它可以以其他方式起作用(请参见Unsave --> Save),但事实并非如此。我有点卡在那儿。关于如何解决这个问题有什么想法吗?

5 个答案:

答案 0 :(得分:2)

选中此项,希望对您有所帮助。

   function hideOnClk(id){
             if(id == "save"){
               document.getElementById("unsave").style.display="block";
               document.getElementById(id).style.display="none";
             }else{
               document.getElementById("save").style.display="block";
               document.getElementById(id).style.display="none";
             }
          }

<form id="save-form" method="" action="" novalidate="novalidate">
        <button id="save" type="button" onclick="hideOnClk(this.id)">Save</button>
        <button id="unsave" type="button" class="hide" onclick="hideOnClk(this.id)">Unsave</button>
    </form>

答案 1 :(得分:1)

使用jQuery

尝试使用toggleClass

 <form id="save-form" method="" action="" novalidate="novalidate">
        <button id="save" type="button" onclick="$('#save').toggleClass('hide');$('#unsave').toggleClass('hide');">Save</button>
        <button id="unsave" type="button" class="hide" onclick="$('#save').toggleClass('hide');$('#unsave').toggleClass('hide');">Unsave</button>
    </form>

使用JavaScript

    function myFunction() {
   var element=     document.getElementById("save");
        element.classList.toggle("hide");
  var element=  document.getElementById("unsave");
        element.classList.toggle("hide");
    }

 <form id="save-form" method="" action="" novalidate="novalidate">
            <button id="save" type="button" onclick="myFunction();">Save</button>
            <button id="unsave" type="button" class="hide" onclick="myFunction();">Unsave</button>

答案 2 :(得分:1)

同时具有两个功能的单个按钮呢? 它开始时就像一个保存按钮,单击后会执行保存操作,然后变成“取消保存”按钮。

请参见下面的代码以查看是否有帮助:

const btn = document.getElementById("saveControl");


btn.onclick = function(){
console.log(btn.classList.value)
  if (btn.classList.contains("saveBtn")){
    //DO SAVE STUFF...
    
    btn.classList.remove("saveBtn")
    btn.classList.add("btnUnsave")
    btn.innerText = "Unsave"
    
  } else {
    //DO UNSAVE STUFF...
    
    btn.classList.add("saveBtn")
    btn.classList.remove("btnUnsave")
    btn.innerText = "Save"
  }
}
.saveBtn{
  color:blue
}

.btnUnsave{
 color: red;
}
<button id="saveControl" class="saveBtn">Save</button>

答案 3 :(得分:1)

简单易行,关于您的编程水平,我不想以各种可能的方式淹没您。

function saveFunction() {
  // getting the form from the document using the form name attribute 
  let form = document.form;
  // using the buttons names attribute to select theme
  // classList property of any element gives you all the class it has
  // add('class name') adds the specified class
  form.save.classList.add('hide');
  // remove('class name') removes the specified class
  form.unsave.classList.remove('hide');
}

function unsaveFunction() {
  let form = document.form;
  form.unsave.classList.add('hide');
  form.save.classList.remove('hide');
}
.hide {
  display: none;
}
<form name="form" method="" action="" novalidate="novalidate">
  <button id="save" type="button" onclick="saveFunction()" name="save">Save</button>
  <button id="unsave" type="button" name="unsave" class="hide" onclick="unsaveFunction()">Unsave</button>
</form>

答案 4 :(得分:1)

尝试HTML DOM classList属性切换

document.getElementById("save").toggle("hide)
document.getElementById("unsave").toggle("hide)