我正在尝试使用两个输入 sdate 和 edate 的dateRange,但如果sdate变得大于edate,我希望将edate设置为sdate是什么选为,反之亦然。
如果sdate和edate都设置为'2014-08-02',如果我编辑为'2014-08-01',则sdate应移至'2014-08-01'。但是,将edate设置为“2014-08-03”除了更改edate之外什么都不做。
如果sdate大于edate,则应以类似的方式工作。
编辑:更新了jsfiddle并进行了改进。当我用sdate传递它时,我可以让edate改变,但是如果它比sdate少,我就不能让edate改变。 Here's a jsfiddle.
function dateRange() {
$(function () {
$("#sdate").datepicker({ dateFormat: "yy-mm-dd",
defaultDate: "+0d",
changeMonth: true,
changeYear: true,
onClose: function () {
testDates();
}
});
$("#sdate").datepicker("setDate", "set");
$("#edate").datepicker({ dateFormat: "yy-mm-dd",
defaultDate: "+0d",
changeMonth: true,
changeYear: true,
onClose: function () {
testDates();
}
});
$("#edate").datepicker("setDate", "set");
});
function testDates() {
var sdate = $("#sdate").datepicker("getDate");
var edate = $("#edate").datepicker("getDate");
if (sdate > edate) {
$("#sdate").datepicker("setDate", sdate);
$("#edate").datepicker("setDate", sdate);
}else if (edate < sdate) {
$("#sdate").datepicker("setDate", edate);
$("#edate").datepicker("setDate", edate);
}
}
}
答案 0 :(得分:3)
我能够通过在函数中构建条件来弄明白。
function dateRange() {
$(function () {
$("#sdate,#edate").datepicker({
dateFormat: "yy-mm-dd",
defaultDate: "+0d",
changeMonth: true,
changeYear: true
}).change(function () {
var sdate = $('#sdate').datepicker("getDate");
var edate = $('#edate').datepicker("getDate");
if (this.id == 'sdate') {
if (sdate > edate) {
$('#edate').datepicker("setDate", sdate);
}
} else {
if (edate < sdate) {
$('#sdate').datepicker("setDate", edate);
}
}
});
$("#sdate,#edate").datepicker("setDate", "set");
});
}
jsfiddle:http://jsfiddle.net/tmac25/udtmn6n7/
答案 1 :(得分:1)
尝试这是有效的。如果你还需要什么,请告诉我。
$(function () {
$("#sdate,#edate").datepicker({
dateFormat: "yy-mm-dd",
defaultDate: "+0d",
changeMonth: true,
changeYear: true,
onClose: function () {
//testDates();
}
}).on('changeDate', function(ev){
$('#edate,#sdate').val($(this).val());
});
$("#sdate,#edate").datepicker("setDate", "set");
});
请参阅jsfiddle链接http://jsfiddle.net/gaurav22031987/tuG6C/216/