我试图让Jquery-UI datepicker每月只有1个可用日期,这是每个月的第1个,当选择所选日期+ X天时,应该复制到另一个文本输入字段。
此外,要添加的天数值会随着下拉列表中选择的内容而变化。
弄到目前为止我所拥有的: http://jsfiddle.net/8y4Bf/
来自小提琴的代码:
HTML
<div>
<label>Select an Option:</label>
<select id="select1">
<option value="" disabled="disabled" selected="selected">Select an option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
</select>
</div>
<br /><br />
<div>
<label>Start Date:</label>
<input type="text" id="startdate" />
<br /><br />
<label>End Date:</label>
<input type="text" id="enddate" />
</div>
Jquery的
$('#select1').change(function() {
$('#startdate, #enddate').val("");
if ($('#select1').val() == '1') {
$('#startdate').datepicker({
showButtonPanel: true,
closeText: 'Close',
dateFormat: "mm/dd/yy",
onSelect: function(selected) {
if (this.id == 'startdate') {
// Parameters 1 day only & also copy result into enddate + 5 days
}
}
});
}
else if ($('#select1').val() == '2') {
$('#startdate').datepicker({
showButtonPanel: true,
closeText: 'Close',
dateFormat: "mm/dd/yy",
onSelect: function(selected) {
if (this.id == 'startdate') {
// Parameters 1 day only & also copy result into enddate + 7 days
}
}
});
}
});
我已阅读http://jqueryui.com/datepicker/#min-max处的文档,但无法弄清楚我如何只提供每个月的第1天。
我是否必须再次获取#startdate
的值,添加日期然后将其粘贴到#enddate
中,或将该值保存在某处,以便我可以从那里开始?
答案 0 :(得分:10)
我更改了jsfiddle
。
只是要知道,为了实现您的需求,datepicker
必须实施beforeShowDay
function
到override
{ {1}},然后必须将选定的component
转换为date
Date
类型,以便轻松添加5或7天(以正确的方式执行,例如,如果您想要选择每个月的最后一天,可以是30或31加5或7天,如果你手动完成,你将在另一个月获得36或38而不是object
,还有许多其他可能性 - 但这不是你的情况,我只是在解释)。
我还改进了date
,看看:
jQuery代码:
code