预先在页面加载时将数据填充到另一个字段中

时间:2012-01-26 10:30:37

标签: jquery

我正在尝试在页面加载时选择日期,这是从页面加载的今天日期开始的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>

1 个答案:

答案 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/