为什么日期设置为变量是由jQuery datepicker更改?

时间:2015-09-07 14:39:01

标签: jquery datepicker

我正在使用jquery-ui制作用户输入的疫苗计划。

以下是疫苗的Schedule

Vaccine Schedule

这里,d =天,m =月,y =年。

以下是Schedule Form,其中可以制作上述日程表的日期: Schedule Form

您可以看到,如果用户将01/09/2015设置为Date of Birth,那么1 day after Birth 02/09/2015Anti Rabies Vaccine - 1st Dose

另一方面,对于相同的Date of Birth,出生后10年应为01/09/2015,即Cervical Cancer - 1st Dose。但是我的日程安排形式是给第一剂量02/09/2015

Hepatitis-A (Adult) - 1st Dose也是如此。

因此,从Date of Birth计算,1st Dose of Cervical Cancer1st Dose of Anti Rabies Vaccine1st Dose of Hepatitis-A (Adult)开始计算疫苗从1st Dose of Cervical Cancer疫苗计算,而不是根据出生日期计算。

这是因为在我的jQuery代码中,我将选定的出生日期声明为变量var date2。这个date2在代码的后半部分正在发生变化,而我使用的方程var date1=date2不应该是。我想告诉jQuery引擎让date1是date2,但它改变了date2本身的值。如果这可以修复,即date2的值可以保持不变,那么jQuery代码将按照我的预期工作。但我无法弄清楚为什么date2的值通过等式var date1=date2更改为date1的值。

我没有在这里提到完整的jQuery代码,而是给出了一个jsfiddle,其中显示了所有HTML,CSS以及jQuery代码。

请点击此链接进行测试:

http://jsfiddle.net/infomamun/82c7s3te/

1 个答案:

答案 0 :(得分:1)

这是因为您根据之前的日期设置了日期。查看您的上一个功能行:

$(this).datepicker('setDate', date1);

在第一行之后,date1是生日后的第1天。这会抛弃图表其余部分的计算结果。

要修复它,我建议使用jQuery的.data()方法存储日期,然后将其重置为每行末尾的生日。

但这真的是一个问题吗?毕竟,谁想在生日那天拍摄? :)