Автозаполнение формы с javascript - PullRequest
0 голосов
/ 25 апреля 2020

Сайт под вопросом

https://form.gov.sg/#! / 5e3790e4d3eeea0011bd2d29

Javascript

document.getElementById('5e353dd16509040011d0333a').value="S1234567C"
document.getElementById('5e3541216509040011d0338b').value="36.8"
document.getElementById('5e353ed27146b10011d4b660').value = "On-Duty"
document.getElementById('5e3542a35cff5300119a8ec6').value = "NUH"

completion();

приведенный выше код работает с первыми 2 элементами, но не выполняет автозаполнение полей раскрывающимися списками. Я также пробовал defaultValue и selectedIndex, но не могу заставить его работать

Могу ли я получить помощь? пожалуйста!

Ответы [ 3 ]

0 голосов
/ 25 апреля 2020

Этот веб-сайт использует Angular и ng-selectize пакет , поэтому вы должны установить значение в соответствии с документацией этого пакета.

Ваш код не работает, потому что там являются элементами в DOM, служащими расширением для этого входа (выбор функции). Элементы под вашим третьим и четвертым идентификаторами на самом деле <div>, а не <input>. Вы можете напрямую изменить значение этих входных данных следующим образом:

document.getElementById('5e353ed27146b10011d4b660').querySelector('.ui-select-search').value = 'On-Duty'

Но лучшей идеей было бы сделать это удобным для Angular способом, если только он вам не нужен для быстрой и грязной работы.

0 голосов
/ 25 апреля 2020

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

document.getElementsByClassName('selectize-input')[0].click()
setTimeout(()=> {document.querySelector('div.ui-select-choices-row.ng-scope.active > div').click()}, 1000)

Вы можете обобщить его для других вопросов.

0 голосов
/ 25 апреля 2020

Я вижу, что вы используете пользовательский выбор (плагин или некоторую библиотеку javascript), вам следует после установки значения просто вызвать событие изменения для каждого из этих выпадающих списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...