Как показать серое текстовое поле в веб-форме с помощью Excel VBA? - PullRequest
2 голосов
/ 13 июня 2019

Я заполняю веб-форму Internet Explorer с помощью Excel VBA.Я в состоянии получить всю информацию, чтобы успешно перейти в форму.Однако некоторые поля формы остаются неактивными, и вы не можете их редактировать, даже если в них уже есть данные.

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

enter image description here

Посмотрите, как номер телефона заполняется в поле, но полеостается серым?Это проблема.Я ищу способ программно раскрыть это поле, чтобы оно стало редактируемым.

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

Вот HTML-код поля, которое я пытаюсь программно раскрыть с помощью Excel VBA.

<td colspan="1" rowspan="1" align="left">
<input type="hidden" name="p_arg_names" value="97183355576083984700">
<input type="text" id="P1_REPORTED_BY_CONTACT" name="p_t20" value="" size="50" maxlength="255" class="text_field apex_disabled" disabled=""></td>

Этокод, который я обычно использую для заполнения данных из Excel в поле формы.Он устанавливает идентификатор элемента, равный тому, что находится в его именованном диапазоне Excel.

doc.getElementById("P1_REPORTED_BY_CONTACT").Value = Range("ContactForm").Value

Поле «Контактная информация» должно выглядеть следующим образом.Поле станет белым и будет доступно для редактирования.

enter image description here

Буду признателен за любые рекомендации / советы, которые вы мне дадите.Или, если вы знаете, где ответ, пожалуйста, укажите мне правильное направление, и я возьму его вниз.Я не мог найти ответ на этот вопрос после нескольких дней исследований.

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Включить поле с помощью

doc.getElementById("P1_REPORTED_BY_CONTACT").Disabled = False

И изменить class="text_field apex_disabled" на class="text_field" с

doc.getElementById("P1_REPORTED_BY_CONTACT").className = "text_field"

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

0 голосов
/ 13 июня 2019

Ответ был предоставлен @PEH в комментариях.Спасибо PEH!

Ответ: doc.getElementById("P1_REPORTED_BY_CONTACT").disabled = False

Простой, но эффективный!

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