Jquery 仅当在确认框中单击“确定”时,才更改日期选择器文本框值

Jquery 仅当在确认框中单击“确定”时,才更改日期选择器文本框值,jquery,Jquery,我想检查所选的日期选择器值。如果所选日期选择器和上一个值日期差大于2,将显示一个确认框。仅当用户从确认框中单击“确定”时,该值才会更改,否则将显示以前的值。我面临的问题是,即使用户单击“取消”,选定日期也会显示在文本框中 $(function() { var beforeChange = $("#planning_completion").val(); $("#planning_completion").on("changeDate", function () { var selected =

我想检查所选的日期选择器值。如果所选日期选择器和上一个值日期差大于2,将显示一个确认框。仅当用户从确认框中单击“确定”时,该值才会更改,否则将显示以前的值。我面临的问题是,即使用户单击“取消”,选定日期也会显示在文本框中

$(function() {
var beforeChange = $("#planning_completion").val();
$("#planning_completion").on("changeDate", function () {
var selected = $(this).val();
var date1 = new Date(beforeChange);
var date2 = new Date(selected);
var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24), 10); 
if(diffDays > 2){
    var didConfirm = confirm("Allocated date for this task is "+beforeChange+". Are you sure You want to change the date?");
    if(didConfirm == true){
        $("#planning_completion").val(selected);
} else {
    $("#planning_completion").val(beforeChange);
}
}        
});
});

无论何时更改日期选择器中的日期,您都可以使用
update
,而且我还添加了else部分,仅当
diff<2
时才使用上一个日期更新值

以下是正在运行的演示代码:

$(函数(){
$(“#计划#完成”).datepicker();
//今天定日期
$(“#计划#完成”).datepicker('setDate',new Date());
变更前风险值=$(“#计划#完成”).val();
$(“#计划#完成”)。在(“变更日期”,函数(){
所选变量=$(this.val();
var date1=新日期(变更前);
var date2=新日期(选定);
var diffDays=parseInt((date2-date1)/(1000*60*60*24),10);
console.log(“diff”+diffDays)
如果(天数>2天){
var didConfirm=confirm(“此任务的分配日期为“+beforeChange+”。是否确实要更改日期?”);
如果(didConfirm==true){
$(“#规划_完成”).datepicker('更新',选中);//添加选定值并更新相同值
}否则{
$(“#规划_完成”).datepicker('update',beforeChange);//添加beforeChange值并更新相同值
}
}否则{
//如果小于2个差异,则无变化
$(“#计划#完成”)。日期选择器(“更新”,更改前);
}
});
});