我正在尝试在页面加载时选择日期,这是从页面加载的今天日期开始的4天,到自动填充侧边栏中的字段,以便用户能够看到选择了哪个日期递送
我已设法获取填充该字段的日期,但只有一次点击它。当页面加载时,它会自动突出显示当前日期,这意味着用户可以继续而不选择日期,如果他们只是查看日期选择器,因为我的日期选择器始终可见,如日历。
我在下面粘贴了我的代码,我的datepicker在#calendar中,值填充#alternate。我需要的是#alternate在页面加载时以相同的日期格式自动填充,因为在你点击一天之前它是空白的。
<script type="text/javascript">
$(function() {
$( "#calendar" ).datepicker({ minDate: +4, maxDate: "+1M +4D", dayNamesMin: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], prevText: '<<', nextText: '>>', changeMonth: false, changeYear: false, altField: "#alternate", altFormat: "DD, d MM, yy", gotoCurrent: false, defaultDate: '+4'});});
</script>
<div id="calendar"></div>
<input type="text" id="alternate" name="delivery-date"/>
任何帮助都会让我非常感激。
修改
<script type="text/javascript">
$(function() {
$( "#calendar" ).datepicker({ minDate: +4, maxDate: "+1M +4D", dayNamesMin: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], prevText: '<<', nextText: '>>', changeMonth: false, changeYear: false, altField: "#alternate", altFormat: "DD, d MM, yy", gotoCurrent: false, defaultDate: '+4'});
var today = new Date();
today.setDate(today.getDate()+4);
future =(today.getMonth()+1) + '/' + today.getDate() + '/' + today.getFullYear();
$("#alternate").append($.datepicker.formatDate('D, dd M yy', today));
});
</script>
答案 0 :(得分:2)
您可以在以前的stackoverflow问题中找到答案:
How do I pre-populate a jQuery Datepicker textbox with today's date?
总是值得快速搜索Google;)
使代码特定于您的代码将类似于:
var today = new Date();
today.setDate(today.getDate()+4);
future =(today.getMonth()+1) + '/' + today.getDate() + '/' + today.getFullYear();
$("#alternate").val(future);
这是一个jsfiddle现场版:http://jsfiddle.net/NXFy2/
编辑:您可以使用内置格式的日期选择器来实际格式化新日期:
$.datepicker.formatDate('yy-mm-dd', new Date(2007, 1 - 1, 26));
请参阅此处的示例和文档:http://docs.jquery.com/UI/Datepicker/formatDate
进一步编辑:要使用datepicker formatDate函数和初始代码来获取今天的日期,或者从今天起的许多天,您可以执行以下操作:
$( "#calendar" ).datepicker({ minDate: +4, maxDate: "+1M +4D", dayNamesMin: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], prevText: '<<', nextText: '>>', changeMonth: false, changeYear: false, altField: "#alternate", altFormat: "DD, d MM, yy", gotoCurrent: false, defaultDate: '+4'});
var today = new Date();
today.setDate(today.getDate()+4);
$("#alternate").val($.datepicker.formatDate('D, dd M yy', today));
这是jsfiddle:http://jsfiddle.net/xX5AM/4/