HTML тип ввода даты вызывает функцию JavaScript, прежде чем я выбираю дату в Iphone - PullRequest
0 голосов
/ 01 декабря 2018

Я делаю весеннее загрузочное приложение и работаю с HTML, чтобы обновить свое представление.Здесь я пытаюсь реализовать собственный DatePicker, используя input type date в HTML-форме, где пользователь выберет дату, а затем страница обновится и отправит форму с выбранной датой в качестве параметра URL.

В текстовом поле формы также будет отображаться значение, выбранное в DatePicker, в формате, который мне нужен после обновления страницы.

Сделано таким образом, что не должно быть кнопки отправки для отправки формы, и как только пользователь выбирает дату из поля input, страница должна автоматически обновиться и сохранить значение в URLпараметр, а также в текстовом поле в форме.

ниже мой код:

HTML:

<form action="#" id="myForm" method="get">
    <input type="text" id="save-date" name="show_date" class="form-control"> 
    <input type="date" onchange="changeDateFormat()" name="date" class="form-control"></input>
</form>

Javascript:

<script type="text/javascript">
    function changeDateFormat(){
        var received_date = document.getElementById("date-input").value;
        var split_dashes = received_date.split('-');
        var final_date = split_dashes[2]+'.'+split_dashes[1]+'.'+split_dashes[0]
        document.getElementById("show_date").value = final_date;
        document.getElementById("myForm").submit();
    }
</script>

Моя проблема

Это прекрасно работает на всех платформах, кроме ios / iphone 8. На ios / iphone 8, как только я щелкаю поле ввода типа даты, DatePicker немедленно открывается и быстро обновляет страницу.Я ожидаю, что он будет ждать моего ввода, но это не позволяет мне.вместо этого он быстро вызывает функцию js и обновляет страницу.

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

То, что я пытался

Я пробовал всю ночь и половину своего сегодняшнего дня, чтобы понять, почему это происходит.Кажется, в ios datepicker он быстро выбирает дату, как только я нажимаю, чтобы открыть выпадающее меню.Помимо этого я попытался реализовать функцию JQuery, но она работает так же.Я также попробовал onselect, oninput, но ничего не работает.

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

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

Однако, если он может подождать, пока я не выберу дату, пока я не нажму "Готово" (она есть в iphones) в DatePicker, эта проблема может быть устранена

Пожалуйста, сообщите мне, как я могурешить это

1 Ответ

0 голосов
/ 02 декабря 2018

Для тех, у кого такая же проблема в будущем.Просто попробуйте запустить функцию с событием onblur вместо onchange.onchange здесь не работает, потому что в iphone поле обновляется, как только вы пытаетесь переместить счетчик DatePicker для выбора дат.Таким образом, с onblur он ждет, пока пользователь намеренно не закроет указатель даты, только тогда будет вызвана функция.

Спасибо.

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