Как получить значение элемента формы
Перейти к содержимому

Как получить значение элемента формы

  • автор:

Как получить значение элемента формы

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

Но вот косяк. Господа разработчики, как последние собаки, взяли и назвали реквизит немного не так, как называется элемент на форме, в итоге обращаясь к Форма[Элемент.Имя] или к Форма.Объект[Элемент.Имя], дабы получить его содержание, я вылетаю с ошибкой потому что Элемент.Имя=РеализацияПоЗаказу, а Форма.Объект[Элемент.Имя]=РеализацияПоЗаказам.

Возник вопрос, как мне управляемую форму разобрать так, чтобы полностью получить имя реквизита, соответствующего полю на форме.

(0) Этот код должен выпоняться на сервере

Свойства и методы формы

Формы и элементы управления, такие как , имеют множество специальных свойств и событий.

Работать с формами станет намного удобнее, когда мы их изучим.

Навигация: формы и элементы

Формы в документе входят в специальную коллекцию document.forms .

Это так называемая «именованная» коллекция: мы можем использовать для получения формы как её имя, так и порядковый номер в документе.

document.forms.my - форма с именем "my" (name="my") document.forms[0] - первая форма в документе

Когда мы уже получили форму, любой элемент доступен в именованной коллекции form.elements .

    

Может быть несколько элементов с одним и тем же именем, это часто бывает с кнопками-переключателями radio .

В этом случае form.elements[name] является коллекцией, например:

    

Эти навигационные свойства не зависят от структуры тегов внутри формы. Все элементы управления формы, как бы глубоко они не находились в форме, доступны в коллекции form.elements .

как «подформа»

Форма может содержать один или несколько элементов внутри себя. Они также поддерживают свойство elements , в котором находятся элементы управления внутри них.

  
info

Сокращённая форма записи: form.name

Есть более короткая запись: мы можем получить доступ к элементу через form[index/name] .

Другими словами, вместо form.elements.login мы можем написать form.login .

Это также работает, но есть небольшая проблема: если мы получаем элемент, а затем меняем его свойство name , то он всё ещё будет доступен под старым именем (также, как и под новым).

В этом легче разобраться на примере:

   

Обычно это не вызывает проблем, так как мы редко меняем имена у элементов формы.

Обратная ссылка: element.form

Для любого элемента форма доступна через element.form . Так что форма ссылается на все элементы, а эти элементы ссылаются на форму.

   

Элементы формы

Рассмотрим элементы управления, используемые в формах.

input и textarea

К их значению можно получить доступ через свойство input.value (строка) или input.checked (булево значение) для чекбоксов.

input.value = "Новое значение"; textarea.value = "Новый текст"; input.checked = true; // для чекбоксов и переключателей

Используйте textarea.value вместо textarea.innerHTML

Обратим внимание: хоть элемент и хранит своё значение как вложенный HTML, нам не следует использовать textarea.innerHTML для доступа к нему.

Там хранится только тот HTML, который был изначально на странице, а не текущее значение.

select и option

Элемент имеет 3 важных свойства:

  1. select.options – коллекция из подэлементов ,
  2. select.value – значение выбранного в данный момент ,
  3. select.selectedIndex – номер выбранного .

Они дают три разных способа установить значение в :

  1. Найти соответствующий элемент и установить в option.selected значение true .
  2. Установить в select.value значение нужного .
  3. Установить в select.selectedIndex номер нужного .

Первый способ наиболее понятный, но (2) и (3) являются более удобными при работе.

Вот эти способы на примере:

  

В отличие от большинства других элементов управления, позволяет нам выбрать несколько вариантов одновременно, если у него стоит атрибут multiple . Эту возможность используют редко, но в этом случае для работы со значениями необходимо использовать первый способ, то есть ставить или удалять свойство selected у подэлементов .

Их коллекцию можно получить как select.options , например:

   

new Option

Элемент редко используется сам по себе, но и здесь есть кое-что интересное.

В спецификации есть красивый короткий синтаксис для создания элемента :

option = new Option(text, value, defaultSelected, selected);
  • text – текст внутри ,
  • value – значение,
  • defaultSelected – если true , то ставится HTML-атрибут selected ,
  • selected – если true , то элемент будет выбранным.

Тут может быть небольшая путаница с defaultSelected и selected . Всё просто: defaultSelected задаёт HTML-атрибут, его можно получить как option.getAttribute(‘selected’) , а selected – выбрано значение или нет, именно его важно поставить правильно. Впрочем, обычно ставят оба этих значения в true или не ставят вовсе (т.е. false ).

let option = new Option("Текст", "value"); // создаст 

Тот же элемент, но выбранный:

let option = new Option("Текст", "value", true, true);

Элементы имеют свойства:

option.selected Выбрана ли опция. option.index Номер опции среди других в списке . option.value Значение опции. option.text Содержимое опции (то, что видит посетитель).

Ссылки

  • Спецификация: https://html.spec.whatwg.org/multipage/forms.html.

Итого

Свойства для навигации по формам:

document.forms Форма доступна через document.forms[name/index] . form.elements Элементы формы доступны через form.elements[name/index] , или можно просто использовать form[name/index] . Свойство elements также работает для . element.form Элементы хранят ссылку на свою форму в свойстве form .

Значения элементов формы доступны через input.value , textarea.value , select.value и т.д. либо input.checked для чекбоксов и переключателей.

Для элемента мы также можем получить индекс выбранного пункта через select.selectedIndex , либо используя коллекцию пунктов select.options .

Это были основы для начала работы с формами. Далее в учебнике мы встретим ещё много примеров.

В следующей главе мы рассмотрим такие события, как focus и blur , которые могут происходить на любом элементе, но чаще всего обрабатываются в формах.

Получить значение элемента из формы

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
html>head> script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> script> head> body> form name="person" action="#" method="POST">table id="tender" border="1">tbody>tr>td align="center">N п/пtd>td align="center">Полное наименование МТОtd>td align="center">Поставляемоеbr>количество td>td align="center">Файлtd>tr>tr>td>1td>td align="left">Мышь беспроводнаяinput name="name_mto[]" type="hidden" value="Мышь беспроводная">td>td>input name="kol_fact[]" type="text" size="15" value="">td>td>input type="file" name="sortpic">button type="button">Uploadbutton>td>tr>tr>td>2td>td align="left">Клавиатура беспроводнаяinput name="name_mto[]" type="hidden" value="Клавиатура беспроводная">td>td>input name="kol_fact[]" type="text" size="15" value="">td>td>input type="file" name="sortpic">button type="button">Uploadbutton>td>tr>tr>td>3td>td align="left">Мониторinput name="name_mto[]" type="hidden" value="Монитор">td>td>input name="kol_fact[]" type="text" size="15" value="">td>td>input type="file" name="sortpic">button type="button">Uploadbutton>td>tr>tbody>table>p align="left">input name="kol_usl" type="hidden" value="3">input name="id_zap" type="hidden" value="">input type="submit" class="sub" value="Отправить">p>form>br>br> script> document.querySelectorAll('#tender button') .forEach(but => { but.addEventListener('click', function() { const file_data = but.parentElement.querySelector('input').files[0]; const form_data = new FormData(); form_data.append('userfile', file_data); form_data.append('namefile', '1'); form_data.append('firma', 'Roga'); for (const pair of form_data.entries()) { console.log(pair[0]+ ', ' + pair[1]); } fetch('upload1.php', { method: 'POST', body: form_data, cache: 'no-cache' }) .then((resp) => {/* не знаю, что у вас посылает сервер в ответ*/}) }); }) script> body>html>

Я пытался сделать так

const podpap = but.parentElement.getElementsByName('strok');

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как получить значение реквизита элемента формы Отчета
Народ , Как получить значение реквизита элемента формы Отчета в общем модуле

Как при выборе пункта меню получить значение элемента формы?
Здравствуйте. Подскажите как получить измененное значение из editText фрагмента при выборе пункта.

Как получить доступ к данным элемента формы из другого элемента этой же формы
constructor TItem.Create(Par: TFlowPanel;N:string;NameOfScript:string); begin Parent .

Получить индекс элемента одномерного массива, если известно значение элемента (без цикла)?
Получить индекс элемента одномерного массива, если известно значение элемента (без цикла)? То.

Как получить значение элемента формы 1С

В обычном приложении у элемента формы 1С 8.3 было свойство «Значение», доступное как для чтения, так и для записи. Какой аналог в управляемом приложении? Элементы формы 1С 8.3 могут содержать реквизиты двух видов: реквизиты объекта 1С и реквизиты формы.

Красным помечен реквизит объекта 1С Контрагент, а зеленым – реквизит формы в 1С.

Интерактивно выберем эти элементы в пользовательском режиме 1С и попробуем прочитать их «программно» кнопкой «Прочитать».

Если читать значения реквизитов в клиентской процедуре, то код для 1С Предприятия будет следующий:

Все бы хорошо: мы получили на клиенте значения реквизитов объекта 1С и формы, но – не значения элементов формы 1С. На клиенте значение элементов формы 1С получить нельзя.

2. Как получить значения из элементов формы 1С

Чтобы получить значения из элементов формы 1С, нам потребуется серверный вызов:

Именно на сервере у элемента формы 1С 8.3 становится доступно свойство ПутьКДанным, по которому его можно извлечь либо из Объекта, который имеет тип ДанныеФормыСтруктура:

…либо из Формы, которая имеет тип ФормаКлиентскогоПриложения:

Форма и ее элементы не видны на сервере без контекста. То есть код для 1С:Предприятия выдаст множество ошибок. Также Форму нельзя передать как параметр в процедуру и функцию на сервер или в общий модуль.

Еще хочется разобрать момент, когда нам возможно увидеть состояние различающихся значений в элементе форме 1С и в объекте. Это возможно в событии элемента ОбработкаВыбора.
Например, при значении поля Контрагент — Ассоль, мы выбрали контрагента Бакалея:

Новое значение доступно как параметр процедуры ВыбранноеЗначение.

Система дает шанс что-то сделать в этой ситуации.
Специалист компании ООО «Кодерлайн» Добрыгин Михаил

Вас могут заинтересовать следующие статьи:

94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) —> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) —>

Вас могут заинтересовать следующие вебинары:

1С: Конвертация данных [1] => Конвертация данных [2] => Программирование в 1С [3] => Как сделать в 1С [4] => 1С:Бухгалтерия [5] => Отчеты в 1С [6] => Обмен между базами [7] => Закрытие месяца [8] => 1С:Управление производственным предприятием [9] => 1С: Розница [10] => 1С: CRM [11] => Оценка задач [12] => СКД [13] => РСБУ [14] => Администрирование 1С [15] => Оптимизация [16] => 1С: ERP [17] => Моделирование [18] => Продажи [19] => 1С: Управление торговлей [20] => Бюджетирование [21] => HTTP [22] => Управление проектами [23] => MS SQL Server [24] => МСФО [25] => БУ [26] => Внедрение ERP [27] => com-объекты [28] => 1С: WMS Управление складом [29] => Перенос данных [30] => Торговое оборудование [31] => 1С: Сценарное тестирование [32] => 1С: Колледж [33] => Запросы 1С [34] => LINUX [35] => WEB [36] => Лицензии 1С [37] => 1С:Зарплата и Управление Персоналом [38] => 1С: Документооборот [39] => Excel [40] => ADO [41] => Транспортная логистика [42] => Внедрение [43] => Техническое задание [44] => Отчетность [45] => Ценообразование [46] => 1С:Комплексная автоматизация [47] => Производство [48] => Интеграция 1С [49] => Планирование [50] => Налоги [51] => Отпуск [52] => Полезные обработки [53] => Расширение конфигурации [54] => XML [55] => Word [56] => WEB-сервисы 1С [57] => Лизинг [58] => 1С:Управление нашей фирмой [59] => 1С:Управление корпоративными финансами [60] => 1С: Аренда и управление недвижимостью [61] => Правила обмена [62] => 1С: Платформа [63] => Финансовый учет ) —>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *