Добавление функции выполняется по нажатию кнопки - PullRequest
0 голосов
/ 05 февраля 2019

Хорошо, по сути, у меня есть кнопка HTML, которая выполняет данную функцию по щелчку, и как только эта функция будет выполнена, я хочу добавить имя функции, выполняемой, нажав эту же кнопку.Очевидно, это будет последний компонент начальной функции.

Я попытался провести исследование по этому конкретному вопросу об изменении атрибута 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 кнопки на совершенно другую функцию, создавая что-то вроде следующего.

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

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Как я понял, вы хотите изменить функцию onclick после выполнения большого javascript, а также добавить имя функции, так что вы можете сделать что-то вроде этого:

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>
0 голосов
/ 05 февраля 2019

Используйте 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>
...