追加按钮的功能来执行的onclick

问题描述 投票:0回答:2

好吧,所以基本上我有一个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功能被执行,并且另外执行该是应该的按钮的onclick功能改变为完全不同的功能翻拍()函数,产生类似的下方。

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

提前致谢。

javascript html button onclick
2个回答
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>

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>
© www.soinside.com 2019 - 2024. All rights reserved.