2015-09-07 75 views
0

我正在使用jquery-ui製作用戶輸入的疫苗計劃。爲什麼設置爲變量的日期是由jquery datepicker更改?

下面是疫苗的Schedule

Vaccine Schedule

這裏,d =天,M =月,Y =年。

下面是從Schedule Form其中上述日程安排的日期進行: Schedule Form

你可以看到,如果用戶設置01/09/2015Date of Birth,然後1 day after Birth02/09/2015Anti Rabies Vaccine - 1st Dose

另手,同樣Date of Birth,出生後10年應爲01/09/2015Cervical Cancer - 1st Dose。但是我的日程表格會給出第一個劑量爲02/09/2015

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

所以,而不是從Date of Birth計算,1st Dose of Cervical Cancer1st Dose of Anti Rabies Vaccine計算和1st Dose of Hepatitis-A (Adult)疫苗計算來自1st Dose of Cervical Cancer疫苗,而不是從出生日期計算。

這是因爲在我的jQuery代碼中,我宣佈選擇出生日期爲變量var date2。這個date2在代碼的後面部分正在改變,而我使用的方程不應該是。我想告訴讓date1是date2的jquery引擎,但它正在改變date2本身的值。如果這可以被修復,即date2的值可以保持不變,那麼jQuery代碼將按我的預期工作。但我無法弄清楚爲什麼date2的值通過方程改變爲date1的值。

這將是我的榮幸,如果你找出問題並幫助我解決關鍵問題。

在這裏提到完整的jquery代碼,我給出了一個jsfiddle,其中顯示了所有html,css以及jquery代碼。

請點擊此鏈接爲測試目的:

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

+0

如果通過修改我的代碼(例如在輸入字段的close事件上附加'on change'事件,相同的日程安排可以使您的答案被接受。 –

回答

1

這是因爲你設置基礎上,以前的日期。請參閱您的最後一個功能線:

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

第一行後,date1是生日後1天。這拋出了圖表其餘部分的計算。

爲了解決這個問題,我建議使用jQuery的.data()方法來存儲日期,並將其重置爲每行末尾的生日。

但是真的有問題嗎?畢竟,誰想要在他們的生日中獲得這些鏡頭?:)

+0

如果您修改我的jsfiddle並給出該jsfiddle的修改版本,那將是我的榮幸。是的,這確實是一個問題。第一劑疫苗不是在出生日期,也不是在出生日期或出生日期的10年(在宮頸癌疫苗的情況下)。第一劑抗Rabbies疫苗只是示範代碼...... lol –

+0

Scimonster,我沒有使用'date1'作爲固定日期,我使用'date2'作爲固定/常量日期和最後一個功能行我正在設置'date1',而不是'date2'。所以'date2'應該在代碼中保持不變。 –

相關問題