Как я могу предварительно заполнить текстовое поле с помощью jQuery отмечать сегодняшнюю дату?
у меня есть очень простой календарь jQuery Datepicker:
$(document).ready(function(){
$("#date_pretty").datepicker({
});
});
и, конечно, в HTML...
<input type="text" size="10" value="" id="date_pretty"/>
сегодняшняя дата хорошо выделяется для пользователя, когда они поднимают календарь, но как я могу получить jQuery для предварительного заполнения самого текстового поля с сегодняшней датой при загрузке страницы, без каких-либо действий пользователя? 99% времени, сегодняшняя дата по умолчанию будет то, что они хотят.
18 ответов:
обновление: есть сообщения, что это больше не работает в Chrome.
это кратко и делает работу:
$(".date-pick").datepicker('setDate', new Date());
вы должны сначала вызвать datepicker ()>затем используйте 'setDate', чтобы получить текущую дату.
$(".date-pick").datepicker(); $(".date-pick").datepicker("setDate", new Date());или цепочка вызова метода setDate после инициализации datepicker, как указано в комментарии к этому ответу
$('.date-pick').datepicker({ /* optional option parameters... */ }) .datepicker("setDate", new Date());Это не С
$(".date-pick").datepicker("setDate", new Date());Примечание:описаны приемлемые параметры setDate здесь
var myDate = new Date(); var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' + myDate.getFullYear(); $("#date_pretty").val(prettyDate);казалось, работает, но там может быть лучший выход..
The
setDate()метод устанавливает дату и обновляет соответствующий элемент управления. Вот как:$("#datepicker1").datepicker({ dateFormat: "yy-mm-dd" }).datepicker("setDate", "0");как указано в документации,
setDate()С радостью принимает объект даты JavaScript, число или строку:новая дата может быть объектом даты или строкой в текущей дате формат (например, '01/26/2009'), число дней с сегодняшнего дня (например, +7) или a строка значений и точек ('y' в течение многих лет, ' m 'в течение нескольких месяцев,' w ' для недели, ' d 'в течение нескольких дней, например '+1m +7d'), или null для очистки выбранного дата.
в случае, если вам интересно, задание
defaultDateсвойства в конструкторе не обновите соответствующий элемент управления.
значение :
$('#date_pretty').datepicker('setDate', '+0');значение вчера:
$('#date_pretty').datepicker('setDate', '-1');и так далее с любым количеством дней до или послесегодня!--5-->.
посмотреть jQuery UI "методы" setDate.
решение:
$(document).ready(function(){ $("#date_pretty").datepicker({ }); var myDate = new Date(); var month = myDate.getMonth() + 1; var prettyDate = month + '/' + myDate.getDate() + '/' + myDate.getFullYear(); $("#date_pretty").val(prettyDate); });спасибо grayghost!
этот код будет гарантировать, чтобы использовать формат вашего datepicker:
$('#date-selector').datepicker('setDate', new Date());нет необходимости повторно применять формат, он использует предопределенный datepicker-один из вас при инициализации datepicker (если вы его назначили!);)
код Дэвида K Egghead работал отлично, спасибо!
$(".date-pick").datepicker(); $(".date-pick").datepicker("setDate", new Date());мне также удалось немного обрезать его, и он также работал:
$(".date-pick").datepicker().datepicker("setDate", new Date());
$('input[name*="date"]').datepicker({ dateFormat: 'dd-mm-yy', changeMonth: true, changeYear: true, beforeShow: function(input, instance) { $(input).datepicker('setDate', new Date()); } });
чтобы установить datepicker на определенное время по умолчанию (текущая дата в моем случае) при загрузке, а затем иметь возможность выбрать другую дату синтаксис :
$(function() { // initialize the datapicker $("#date").datepicker(); // set the time var currentDate = new Date(); $("#date").datepicker("setDate",currentDate); // set the options for the button $("#date").datepicker("option",{ dateFormat: 'dd/mm', showOn: "button", // whatever option Or event you want }); });
просто подумал, что я добавлю свои два цента. Средство выбора используется в форме добавления / обновления, поэтому оно должно показывать дату, поступающую из базы данных, если редактируется существующая запись, или показывать сегодняшнюю дату, если нет. Ниже работает нормально для меня:
$( "#datepicker" ).datepicker(); <?php if (!empty($oneEVENT['start_ts'])): ?> $( "#datepicker" ).datepicker( "setDate", "<?php echo $startDATE; ?>" ); <? else: ?> $("#datepicker").datepicker('setDate', new Date()); <?php endif; ?> });
для предварительного заполнения даты сначала необходимо инициализировать datepicker, а затем передать значение параметра setDate.
$("#date_pretty").datepicker().datepicker("setDate", new Date());
у вас есть 2 варианта:
ВАРИАНТ А) отмечает как "активный"в вашем календаре, только когда вы нажимаете на вход.
Js:
$('input.datepicker').datepicker( { changeMonth: false, changeYear: false, beforeShow: function(input, instance) { $(input).datepicker('setDate', new Date()); } } );Css:
div.ui-datepicker table.ui-datepicker-calendar .ui-state-active, div.ui-datepicker table.ui-datepicker-calendar .ui-widget-content .ui-state-active { background: #1ABC9C; border-radius: 50%; color: #fff; cursor: pointer; display: inline-block; width: 24px; height: 24px; }ВАРИАНТ Б) ввод по умолчанию с сегодня. Вы должны заполнить сначала datepicker .
$("input.datepicker").datepicker().datepicker("setDate", new Date());
var prettyDate = $.datepicker.formatDate('dd-M-yy', new Date()); alert(prettyDate);назначьте prettyDate для необходимого элемента управления.
попробуй такое
$(this).datepicker("destroy").datepicker({ changeMonth: false, changeYear: false,defaultDate:new Date(), dateFormat: "dd-mm-yy", showOn: "focus", yearRange: "-5:+10" }).focus();
это работает лучше для меня, как иногда у меня есть проблемы с вызовом
.datepicker('setDate', new Date());как это беспорядок, если если у меня есть datepicker уже настроен с параметрами.$("#myDateText").val(moment(new Date()).format('DD/MM/YYYY'));
$(function() { $('.date-pick').datePicker().val(new Date().asString()).trigger('change'); });Источник: http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerDefaultToday.html
Comments