gpt4 book ai didi

Jquery datepicker 仅可选择 1 天,并在下一个输入中复制日期 +x 天

转载 作者:行者123 更新时间:2023-12-03 22:38:25 24 4
gpt4 key购买 nike

我试图让 Jquery-UI 日期选择器每月只有 1 个可用日期,即每个月的 1 号,当选择所选日期 + X 天时,应将其复制到另一个文本输入字段中。

此外,要添加的天数值会根据下拉列表中选择的内容而变化。

摆弄我到目前为止所拥有的: http://jsfiddle.net/8y4Bf/

fiddle 代码:

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中,或者将该值保存在某处以便我可以去从那里开始?

最佳答案

已测试并正常工作!

  • 我更改了您的 jsfiddle 的逻辑。

  • 要知道,为了实现您所需要的,datepicker必须实现beforeShowDayfunction覆盖 将在组件中显示的日期,那么所选的日期必须转换为Date 对象 键入以轻松添加 5 或 7 天(以正确的方式进行操作,因为,例如,如果您想选择每个月的最后一天,可以是 30 或 31 加 5 或 7 天,如果您手动执行此操作,则会得到 36 或 38,而不是其他月份的日期,而且还有许多其他可能性-但这不是你的情况,我只是在解释)。 p>

  • 我还改进了代码,看看:

    现场演示: http://jsfiddle.net/oscarj24/q27EG/2/

jQuery 代码:

$(function() {

var extraDays = 0;
var combobox = $('#select1');
var txtStartDate = $('#startdate');
var txtEndDate = $('#enddate');
var inputs = txtStartDate.add(txtEndDate);

combobox.on('change', function() {

inputs.val('');

var val = $(this).val();
if(val == 1) extraDays = 5;
if(val == 2) extraDays = 7;

txtStartDate.datepicker({
showButtonPanel: true,
closeText: 'Close',
dateFormat: 'mm/dd/yy',
beforeShowDay: function(date) {

/* Check for the first day */
if (date.getDate() == 1) { return [true, '']; }
else { return [false, '', 'Unavailable']; }
},
onSelect: function(selected) {

/* Add extra days to the date according to 'combobox' selection */
var endDate = new Date(selected);
endDate.setDate(endDate.getDate() + extraDays);

var m = pad(endDate.getMonth() + 1, 2);
var d = pad(endDate.getDate(), 2);
var y = endDate.getFullYear();
var endDateStr = [m, d, y].join('/');

txtEndDate.val(endDateStr);
}
});

});

});

/* This function just adds a zero to get this format: "01, 02, etc" in a number less than 10 */
function pad(number, length) {
var str = '' + number;
while (str.length < length) { str = '0' + str; }
return str;
};

关于Jquery datepicker 仅可选择 1 天,并在下一个输入中复制日期 +x 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com