Я хочу скопировать элемент массива <input name="name[]" >
из одной формы в другую. Проблема, которую я не могу решить, состоит в том, чтобы присвоить значение массива новому элементу.
в javascript, это прекрасно работает:
document.getElementById("newName").value = document.getElementById("name").value;
, но это не так:
document.getElementsByName("newName[]").value = document.getElementsByName("name[]").value;
Самое близкое, что я мог бы получить, это:
var names = document.getElementsByName('name[]'); // names is a Nodelist
var array_name = [];
var i;
for (i = 0; i < names.length; i++) {
array_name.push(names[i].value);
}
document.getElementById("newName").value = array_name;
Но когда я вызываю document.getElementById("newName").value
, он возвращает строку (или список длиной 1) ["name1, name2"]
. То, что я хочу, это массив ["name1", "name2"]
Я ищу что-то вроде:
Ввод:
<form id="source">
<input type="text" placeholder="Enter your name" id="name" name="name[]">
</form>
Вывод:
<form id="destination">
<input type="hidden" id="newName" name="newName[]" value="">
</form>
ОБНОВЛЕНИЕ: я нашел обходной путь: в то время как $(form)
дает вам доступ только к текущей форме, $('form')
даст доступ ко всем формам. Нет необходимости копировать данные из одной формы в другую.