Jåc*_*cob 11 html jquery datepicker jquery-ui-datepicker
我正在使用Jquery日期选择器,我有以下代码,当用户选择日期时,下面的字段填充日期+1
$('#dt2').datepicker({
dateFormat: "dd-M-yy"
});
$("#dt1").datepicker(
{dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function(date){
var date2 = $('#dt1').datepicker('getDate');
date2.setDate(date2.getDate()+1);
$('#dt2').datepicker('setDate', date2);
Run Code Online (Sandbox Code Playgroud)
我想限制dt2
字段中的日期不应低于dt1
字段中的日期.例如,如果选择的日期dt1
是01-May-2013
,则允许用户选择日期之后01-May-2013
,不小于02-May-2013
如何限制日期字段2中的日期选择?
Sir*_*ton 40
我为你创造了一个jsfiddle.我不是100%肯定它是否"万无一失"但是为了防止用户手动输入日期,你可以设置输入到readonly
例如
<input type="text" id="dt1" readonly="readonly">
Run Code Online (Sandbox Code Playgroud)
目前我检查dt2 onClose,如果它的日期低于dt1s日期我更正了.此外,如果在dt1中选择了日期,则dt2 的minDate设置为dt1 date +1.
$(document).ready(function () {
$("#dt1").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function (date) {
var date2 = $('#dt1').datepicker('getDate');
date2.setDate(date2.getDate() + 1);
$('#dt2').datepicker('setDate', date2);
//sets minDate to dt1 date + 1
$('#dt2').datepicker('option', 'minDate', date2);
}
});
$('#dt2').datepicker({
dateFormat: "dd-M-yy",
onClose: function () {
var dt1 = $('#dt1').datepicker('getDate');
var dt2 = $('#dt2').datepicker('getDate');
//check to prevent a user from entering a date below date of dt1
if (dt2 <= dt1) {
var minDate = $('#dt2').datepicker('option', 'minDate');
$('#dt2').datepicker('setDate', minDate);
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
看到jsfiddle
Sac*_*tte 17
我是这样做的 -
代码如下
$('#dt2').datepicker({
dateFormat: "dd-M-yy"
});
$("#dt1").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
onSelect: function(date){
var date1 = $('#dt1').datepicker('getDate');
var date = new Date( Date.parse( date1 ) );
date.setDate( date.getDate() + 1 );
var newDate = date.toDateString();
newDate = new Date( Date.parse( newDate ) );
$('#dt2').datepicker("option","minDate",newDate);
}
});
Run Code Online (Sandbox Code Playgroud)
我刚刚更改了您的代码,以便自动设置 date2 的最小日期,并且如果 date1 大于 date2,则设置 date2=date1
$("#dt1").datepicker({
dateFormat: "dd/mm/yy",
onSelect: function (date) {
var dt1 = $('#dt1').datepicker('getDate');
var dt2 = $('#dt2').datepicker('getDate');
if (dt1 > dt2) {
$('#dt2').datepicker('setDate', dt1);
}
$('#dt2').datepicker('option', 'minDate', dt1);
}
});
$('#dt2').datepicker({
dateFormat: "dd/mm/yy",
minDate: $('#dt1').datepicker('getDate'),
onClose: function () {
var dt1 = $('#dt1').datepicker('getDate');
var dt2 = $('#dt2').datepicker('getDate');
//check to prevent a user from entering a date below date of dt1
if (dt2 <= dt1) {
var minDate = $('#dt2').datepicker('option', 'minDate');
$('#dt2').datepicker('setDate', minDate);
}
}
});
Run Code Online (Sandbox Code Playgroud)