Выделение определенной кнопки для вызова функции download () в форме - PullRequest
0 голосов
/ 14 октября 2018

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

            <button id="button-reset">Clear</button>
            <button id="button-save">download</button>

Где атрибуты кнопки определены в более раннем определении стиля для кнопки .form_box {}.Будучи очень новым для javascript, я скопировал следующий код, чтобы упростить загрузку

<script language="Javascript" >
  function download(filename, text) {
  var pom = document.createElement('a');
  	pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
 	pom.setAttribute('download', filename);
  	pom.style.display = 'none';
        document.body.appendChild(pom);
        pom.click();
        document.body.removeChild(pom);
	}
</script>

В своем теге формы я вызываю функцию загрузки и передаю параметры, которые мне нужны, для именования файла .txt, который необходимо загрузить, а также текста для помещения в файл.Это работает нормально, однако, функция загрузки вызывается при нажатии любой кнопки в форме.Мне нужно изолировать вызов функции от кнопки «скачать».Я думаю, что мне нужно обернуть оператор pom.click () в if, при котором «if is true» - это когда нажата кнопка загрузки.Но я могу быть совершенно неправ в этом.Я попытался удалить вызов download () из тега формы и поместить его в тег button следующим образом:

<button type="button" onclick="download(this['ticket'].value, this['followup'].value); return false" id ="button-save">download</button>

Это не позволяет кнопке «очистить» вызвать функцию download (), однако кнопка «скачать» сейчас ничего не делает.Ваша помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Первый язык = "Javascript" неверен, стандарт type = "text / javascript".Вот как вы можете изменить свою форму, чтобы она работала.

<form id="form_id">
   <input name="ticket" type="text">
   <input name="followup" type="text">
   <button id="button-reset" type="button" onclick="document.getElementById('form_id').reset();" >clear</button>
   <button id="button-save"  type="button" onclick="download(document.getElementById('form_id')['ticket'].value, document.getElementById('form_id')['followup'].value);" >Download</button>
</form>

Эта кнопка не вызывает вашу форму из-за type="button".

0 голосов
/ 14 октября 2018

this была ссылкой на форму, но теперь это ссылка на кнопку.Указав форму вместо this было бы хорошо.Например:

<button type="button" onclick="download(document.forms[String form_name]['ticket'].value, document.forms[String form_name]['followup'].value); return false" id ="button-save">download</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...