Не могу установить скрытое поле формы - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь установить input типа hidden в форме перед отправкой, и я не понимаю, почему она не устанавливает мое поле:

HTML

    <form id="createForm" method="post" action="[myhost]/[myaddress]/[mypath]" enctype="multipart/form-data" >
      <input type="hidden" id="ticket" name="Ticket" />
    </form>

   <input id="setterInput" type="text"/>
   <button onclick="methods.setHidden()"></button>

JS

window.methods = {
    setHidden: function () {
            var form = document.getElementById('createForm');
            var setter=document.getElementById('setter');
            var input = document.getElementsByName('Ticket');
            input.value = setter.value;
            console.log(input.value); //has the desired value
      //looking with the debugger in my form at the target input, the value is still default
    }

}

Когда я устанавливаю отладчик в строке console.log, устанавливается переменная input. Но она не отражается вform.Когда я прокручиваю форму, значение input все еще равно "".

Есть предложения?

Ответы [ 2 ]

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

Если вы решите использовать «getElementsByName», помните, что это множественное число (get Elements ByName), и поэтому оно вернет нам список элементов массива.Таким образом, этот способ доступа к элементу массива может помочь var input = document.getElementsByName('Ticket')[0];

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

getElementsByName возвращает массив элементов, даже если есть только один элемент.

Вы можете сделать две вещи:

Изменить это:

var input = document.getElementsByName('Ticket');

на это:

var input = document.getElementById('ticket');

Или, если вы хотите продолжать использовать getElementsByName, вы можете получить доступ к его значению следующим образом:

var input = document.getElementsByName('Ticket')[0];
...