Ввод даты в поле формы не представлен - PullRequest
1 голос
/ 12 апреля 2020

У меня есть код, который успешно вводит различные значения в форму на веб-странице, и я вижу, что данные помещаются в правильные поля в правильном формате. Когда я отправляю форму с помощью кнопки «ОК» на экране или кода, процесс завершается, но перенесенные данные Дата являются текущей датой, несмотря на то, что в поле отображается другая дата. Я могу вырезать и вставлять данные в поле, например, из Блокнота, и он отлично работает.

Итак, короче говоря, хотя я вижу правильную дату Дата на экране, она не отправляется при предоставлении сценарием.

Вот html для соответствующей части формы, и я думаю, что соответствующий код находится рядом с ней:

    <iframe id="mainPanel_iframe" name="mainPanel_iframe" class="mochaIframe" src="https://portal.starleaf.com/pbx/node-1.live.pr.starleaf.com/portal/#page=addUserConference&amp;">

#document
                <div> class="mainTableContainer">
                    <form action="#" method="get">
                        <div class="formRow">
                            <div class="fieldBlock calendarBlock">
                                <input type="date" id="editConference_startNative" class="native_date has_native">
                                <input type="text" id="editConference_start" class="sl_date has_native" placeholder="DD/MM/YYYY">
                                <input type="text" id="editConference_startTime" placeholder="Time" class="ui-timepicker-input" autocomplete="off">
                                <div id="start-date-picker"><div class="pika-single is-hidden is-bound" style="position: static; left: auto; top: auto;"></div></div>
                                <div id="start-time-picker"></div>
                            </div>
                        </div>
                    </form>
                </div>  

                <div class="buttons">
                    <input type="button" id="editConference_ok" value="OK">
                </div>
    </iframe>       

Вот Javascript, который я использовал. Я тестировал его с помощью консоли Chrome F12 и работал внутри iframe. Он автоматизирует заполнение формы и отправляет ее. Строка с StDate (id="editConference_start") не работает, но следующая строка с StTime (id="editConference_startTime") действительно проходит после «щелчка». Оба типа type="text".

\ Загрузка данных в поля

var StDate = "06/05/2020";
document.getElementById('editConference_start').value = StDate;

var StTime = "16:20";
document.getElementById('editConference_startTime').value = StTime;

\ Нажмите «ОК»

document.getElementById("editConference_ok").click();

Пытались:

1) Использование приведенного ниже кода для ввода данных через элемент id = "editConference_startNative". Кажется, он не работает, но я не уверен, имеет ли смысл мой код или стоит ли что-то использовать:

var StDate = document.querySelector('input[type="date"]');
StDate.value = '2020-05-05';
document.getElementById('editConference_startNative').value = StDate;

2) Создание переменной с типом даты для использования с собственной версией input

var StDate = new Date("05/05/2020");
document.getElementById('editConference_startNative').value = StDate;

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

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

setTimeout(function(){}, 3000);
document.getElementById("editConference_ok").click();

Заранее благодарен за любые предложения.

...