Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получить элемент из формы (https://javascript.ru/forum/dom-window/82339-poluchit-ehlement-iz-formy.html)

nvrabotaru 21.04.2021 07:33

Получить элемент из формы
 
Здравствуйте.
Помогите получить элемент strok из формы из той строки, в которой была нажата кнопка <button>.

Код здесь http://moyka-pro.ru/tz_file2.php

Я пытался сделать так
const podpap = but.parentElement.getElementsByName('strok');

рони 21.04.2021 08:04

Цитата:

Сообщение от nvrabotaru
Я пытался сделать так

индекс добавьте иначе это массив элементов.

ksa 21.04.2021 08:06

Цитата:

Сообщение от nvrabotaru
получить элемент strok из формы из той строки, в которой была нажата кнопка <button>

Как вариант...

<table>
<tr>
	<td>
		<input type='text' name='strok' value='Test' />
		<button>Ok</button>
	</td>
</tr>
</table>
<script>
document.querySelector('button').addEventListener('click',(e) => {
	let val = e.target.parentNode.querySelector('[name="strok"]').value
	alert(val)
})
</script>

nvrabotaru 21.04.2021 08:13

Цитата:

Сообщение от рони (Сообщение 535738)
индекс добавьте иначе это массив элементов.

const podpap = but.parentElement.getElementsByName('strok').value
так? Тоже не работает

nvrabotaru 21.04.2021 08:21

Получить элемент из формы
 
Из этой формы мы уже получаем файл. Нужно еще получить 1 параметр. Можете заглянуть по ссылке? http://moyka-pro.ru/tz_file2.php

рони 21.04.2021 08:25

Цитата:

Сообщение от nvrabotaru
так? Тоже не работает

:-?
but.parentElement.getElementsByName('strok')[0].value

voraa 21.04.2021 08:31

Цитата:

Сообщение от nvrabotaru
const podpap = but.parentElement.getElementsByName('strok').value
так? Тоже не работает

Ну если вы не знаете Js и DOM, то читайте документацию. Описание функций, которые пытаетесь использовать

getElementsByName
s - множественное число. Т.е возвращается массив (псевдомассив), даже если элемент один
const podpap = but.parentElement.getElementsByName('strok')[0].value

voraa 21.04.2021 08:39

У вас какая то странная форма.
Есть много полей ввода файлов. Для каждого поля есть кнопка пересылки именно этого файла.
И есть общая кнопка submit, для всей формы.
Но ведь при нажатии этой кнопки, все файлы снова начнут посылаться.
Зачем тогда поля выбора файлов и кнопки пересылки именно этого файла включать в общую форму?

nvrabotaru 21.04.2021 08:46

Цитата:

Сообщение от voraa (Сообщение 535744)
У вас какая то странная форма.
Есть много полей ввода файлов. Для каждого поля есть кнопка пересылки именно этого файла.
И есть общая кнопка submit, для всей формы.
Но ведь при нажатии этой кнопки, все файлы снова начнут посылаться.
Зачем тогда поля выбора файлов и кнопки пересылки именно этого файла включать в общую форму?

Дело в том, что на этой форме в каждой строчке пишется товар, и по каждой строчке нужно загружать несколько (много и разных) файлов. Но например для строчки 1 - файлы должны загружаться в Папку Roga/1, для строчки 2 - в Папку Roga/2 и т.д. Строчек тоже может быть много. Еще желательно, чтобы по каждой строчке после загрузки файла в ячейке с загрузкой файлов добавлялось бы имя только что загруженного файла (как в почте, например в яндексе, только без картинок, просто название файла).

nvrabotaru 21.04.2021 08:50

Цитата:

Сообщение от voraa (Сообщение 535743)
Ну если вы не знаете Js и DOM, то читайте документацию. Описание функций, которые пытаетесь использовать

getElementsByName
s - множественное число. Т.е возвращается массив (псевдомассив), даже если элемент один
const podpap = but.parentElement.getElementsByName('strok')[0].value

Ругается
Uncaught TypeError: but.parentElement.getElementsByName is not a function
at HTMLButtonElement.<anonymous>


Часовой пояс GMT +3, время: 11:41.