JQuery datepicker запускает селектор/поле

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

спасибо

кукуды


person kukudas    schedule 12.05.2009    source источник


Ответы (2)


Посетите демонстрационный сайт, новый Date() .asString() используется для выбора сегодня и форматируется, как и следовало ожидать.

$('.date-pick').datePicker().val(new Date().asString()).trigger('change');

РЕДАКТИРОВАТЬ:

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>jQuery datePicker simple datePicker demo</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/date.js"></script>
    <script type="text/javascript" src="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/jquery.datePicker.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/styles/datePicker.css">

    <script type="text/javascript" charset="utf-8">

        Date.format = 'dd.mm.yyyy';

        $(function(){
            $('.date-pick').datePicker()
                .val(new Date().asString()).trigger('change');
        });
    </script>
</head>
<body>
    <label for="date1">Date 1:</label>
    <input name="date1" id="date1" class="date-pick" />
</body>
</html>

Обратите внимание, что скрипт http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/date.js расширяет Date.prototype и устанавливает для Date.format значение 'dd/mm/yyyy'. Я переопределяю это с помощью «dd.mm.yyyy».

person Tim Büthe    schedule 12.05.2009
comment
я пробовал это, но мое поле ввода пусто, однако .val(new Date()) работает, но не в том формате, который использует мой datepicker. - person kukudas; 12.05.2009
comment
Я прикрепил средство выбора даты к некоторым текстовым полям HTML, используя имя класса CSS и обработчик событий onSelect. Мне нужно знать имя класса селектора, на котором произошло текущее onSelect.. к элементам применены 2 других класса, кроме того, который я использую для присоединения средства выбора даты - person techie_28; 31.08.2016
comment
@techie_28 Я не понимаю, что ты говоришь/спрашиваешь. Вы пробовали мой пример, и он не работал для вас? Не могли бы вы предоставить jsfiddle или codepen или что-то подобное? - person Tim Büthe; 31.08.2016
comment
@TimBüthe говорит, что у 3 ящиков есть средство выбора даты jQuery('.box1,.box2,.box3').datepicker({onSelect:function(){...}});. У каждого ящика есть и другие классы class="text box1 float" теперь, когда я пишу логику в onSelect, мне нужно определить, является ли текущий ящик box1, box2 или box3? - person techie_28; 31.08.2016
comment
@TimBüthe Я изучил дамп объекта экземпляра, есть значения, которые показывают все классы, но их нет, например selector:box2 и т. д. - person techie_28; 31.08.2016

Я не уверен, что действительно понимаю, в чем проблема?

$(document).ready(function() {
    $('#date_field').datepicker({
        dateFormat: 'yy-mm-dd',
        constrainInput: false});
});

и просто введите стандартное значение в поле ввода, которое у вас есть:

<input name="date_field" id="date_field" value="2008-04-16" />

или вы можете просто установить значение в document.ready

$('#date_field').val("2008-04-16");

после добавления средства выбора даты. Я не уверен, что ты это имеешь в виду?

Хорошо, после вашего комментария у меня такое чувство, что вы хотите что-то похожее на это:

var my_date = new Date(); //This is the Date object that you're getting from external source
$('#date_field').val(my_date.getFullYear()+"/"+my_date.getMonth()+"/"+my_date.getDate());

Это должно установить значение в поле 2008/04/26 (или что-то еще)

person Steerpike    schedule 12.05.2009
comment
значение поступает из внешней системы, которая, вероятно, имеет такой формат. Вт, 12 мая 2009 г., 16:32:05 по Гринвичу +0200, но после выбора формата, например, 12.05.09. В основном я хочу, чтобы значение, которое заполняется в моем поле ввода, имело такое же форматирование, как я бы выбрал его из средства выбора даты. Я новичок в этом, поэтому я не знаю, как я мог бы лучше объяснить, надеюсь, это более понятно. - person kukudas; 12.05.2009
comment
Спасибо, возможно ли изменить этот my_date.getFullYear()+/+my_date.getMonth()+/+my_date.getDate() на вызов того же метода форматирования/анализа, который будет использовать сборщик данных? - person kukudas; 12.05.2009
comment
я думаю, мне нужно использовать это: var dateFormat = $('.selector').datepicker('option', 'dateFormat'); который я прочитал в документации, чтобы получить стиль формата моего средства выбора даты. и после этого я должен иметь возможность форматировать и устанавливать значение, но каким-то образом я получаю код для получения dateFormat, который не работает. - person kukudas; 12.05.2009
comment
кажется, что использование var dateFormat = $('.selector').datepicker('option', 'dateFormat'); я получаю объект, который, скорее всего, содержит нужную мне информацию. Вероятно, я мог бы отформатировать дату следующим образом: $.datepicker.formatDate(dateformat, new Date(2007, 1 - 1, 26)); однако это не работает, я думаю, мне нужно фактическое значение параметра, какие-либо предложения? - person kukudas; 13.05.2009