单击按钮后执行附加功能

时间:2019-02-05 20:05:40

标签: javascript html button onclick

好吧,从本质上讲,我有一个HTML按钮,该按钮可以执行给定的onclick函数,一旦执行了该函数,我想通过单击相同的按钮来附加执行函数的名称。显然,这将是初始功能的最后一个组成部分。

我曾尝试对将onclick HTML属性集更改为按钮这一特定问题进行研究,但收效甚微,并且由于我对javascript具有新颖性,因此我不了解产生这种功能的知识。

以下是HTML按钮的代码:

    <button id="englishgradesubmit" onClick="Functionenglishgradesubmit()">Submit Grade</button>

此处提供了相应的javascript函数:

    function Functionenglishgradesubmit() {
    var params1 = new Array();

    params1.push(radiobuttonanswer("englishgrade"));
    params1.push(document.getElementById('criterionenglish').value);

    google.script.run.withSuccessHandler(remake)
      .postit(params1);

      }

    function radiobuttonanswer(englishgrade) {
    var englishgrade = document.getElementsByName(englishgrade);
    theans ="";
    for (var i = 0, length = englishgrade.length; i < length; i++) {
    if (englishgrade[i].checked) {
    theans = englishgrade[i].value;
    break;
}

     }

     if (theans.length == 0) {
  alert("Answer: nothing selected for button" + englishgrade); 
  return -1; 
     }

    return theans;

     }

   function remake() {
  unknown code for the moment;
    }

基本上,第一次单击按钮时,将执行上面的大javascript函数,并另外执行remake()函数,该函数应该将按钮的onclick函数更改为一个完全不同的函数,从而产生如下所示的内容。 / p>

     <button id="englishgradesubmit" onClick="otherfunction()">Submit Grade</button>

谢谢。

2 个答案:

答案 0 :(得分:0)

使用getAttribute获取onclick属性,该属性包含函数的名称。

function Functionenglishgradesubmit()
{
var a=document.getElementById('englishgradesubmit').getAttribute('onClick');
document.getElementById('englishgradesubmit').removeAttribute('onClick');
document.getElementById('englishgradesubmit').setAttribute('onClick','newFunction()');

var b=document.getElementById('englishgradesubmit').getAttribute('onClick');
//perform the function tasks
document.getElementById('append').innerHTML+="Old Function name is " +'<b>'+a+'</b><br>';
document.getElementById('append').innerHTML+="New Function name is " +'<b>'+b+'</b>';
}
<button id="englishgradesubmit" onClick="Functionenglishgradesubmit()">Submit Grade</button>
<div id="append"></div>

答案 1 :(得分:0)

据我所知,您希望在执行大型javascript之后更改onclick函数,并附加该函数的名称,因此,您可以执行以下操作:

function remake()
{
   var btn = document.getElementById('englishgradesubmit');
   var fname = btn.getAttribute('onclick');
   document.getElementById('append').innerHTML = "function name: " + fname; //append the function name (if needed)
   btn.onclick = otherFunction;
}

并使用HTML(如果需要):

<div id="append"></div>