JQuery Datepicker возвращается пустым в одной форме, но не в другой - PullRequest
0 голосов
/ 12 января 2019

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

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

Просто чтобы быть уверенным, что сам код выглядит хорошо, вот оно:

Javascript, который находится во внешнем js-файле:

$(document).ready(function(){ 
    $( "#StartDate" ).datepicker({ 
                        altField: '#datepicker',
                        altFormat: 'yy-mm-dd',
                        dateFormat: 'D M d, yy', 
                        firstDay: 1,
        onClose: function( selectedDate ) {
            $( "#StartDate" ).datepicker( "option", "minDate", selectedDate );
        }
    });
    $( "#EndDate" ).datepicker({
                        altField: '#datepicker',
                        altFormat: 'yy-mm-dd',
                        dateFormat: 'D M d, yy', 
                        firstDay: 1,
        onClose: function( selectedDate ) {
            $( "#EndDate" ).datepicker( "option", "maxDate", selectedDate );
        }
    }); 
    $( "#datepicker" ).datepicker({
                        altField: '#datepicker',
                        altFormat: 'yy-mm-dd',
                        dateFormat: 'D M d, yy', 
                        firstDay: 1,
        onClose: function( selectedDate ) {
            $( "#datepicker" ).datepicker( "option", "maxDate", selectedDate );
        }
    }); 
}); 

Само поле формы:

<input type="text" name="EventDate" value="Fri Jan 11, 2019" size="15" id="datepicker">

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

1 Ответ

0 голосов
/ 15 января 2019

Каким-то образом проблема в моем первоначальном вопросе заключалась в том, что что-то было в битах OnLoad, и когда оно было удалено из последнего раздела, которое не работало, оно работало, но затем два других не так удаляли все из них, оно работало нормально. В нем должна быть какая-то синтаксическая ошибка или другая.

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

$(function() {
   $('input').filter('.datepicker').datepicker({
    altFormat: 'yy-mm-dd', 
    dateFormat: 'yy-mm-dd', 
    firstDay: 1
   });
});

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

<input type="text" name="EventDate" value="2019-01-11" size="15" id="EventDate" class="datepicker">
...