0
使用自舉日期選擇器。 有兩個文本框爲起始日期&結束日期。我試圖在用戶更改這兩個文本框中任何一個的日期時設置驗證。 在頁面加載時,兩個框都有當前日期。日期驗證與引導日期選擇器
測試用例:
當用戶集..
1的startDate超過當前日期,設定的startDate =結束日期
2.超出的startDate結束日期,結束日期設定=的startDate
3.結束日期超過當前日期,結束日期設定=當前日期
4. endDate低於startDate,設置startDate = endDate
情況1失敗。今天要說的是2016年1月11日,我設置起始日期爲2016年1月12日,它不會改變到2011年1月11日,但仍然爲1月12日,2016年
此外,案例3失敗。
有什麼事在我的邏輯。
這裏是小提琴 - http://jsfiddle.net/snh6eh9p/2/
JS:
function validateDates(dateType) {
//dateType is to know if this function was fired by changing startdate or enddate
//end-date must always be >= start-date
var today = new Date();
var startDate = new Date($(".txtStartDate").val());
var endDate = new Date($(".txtEndDate").val());
switch (dateType) {
case 1:
case "1":
//if startDate is changed
if (startDate > today) {
setTriggerDates(endDate, 1); //set startDate=enddate
} else if (startDate > endDate) {
setTriggerDates(startDate, 2); //set endDate=startDate
}
break;
case 2:
case "2":
//if endDate is changed
if (endDate > today) {
setTriggerDates(today, 2); //set endDate=today
} else if (endDate < startDate) {
setTriggerDates(endDate, 1); //set startDate=endDate
}
break;
}
}
function setTriggerDates(newDate, applyTo) {
//applyTo determines, which textfield the value should be applied to.
//if 1, then change value of txtStartDate,
//if 2, then change value of txtEndDate
//populate date into the date fields
var today = new Date(newDate);
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
today = yyyy + '-' + mm + '-' + dd;
switch (applyTo) {
case 1:
case "1":
$(".txtStartDate").val(today);
break;
case 2:
case "2":
$(".txtEndDate").val(today);
break;
}
}