2013-02-27 116 views
1

這是烤大家的麪條的東西。我在網站上有一個表格。你可以看看它:My Website。點擊預訂我並選擇右上角的特定天數。使用' - '按鈕從表單中手動刪除一些表單行。然後嘗試使用第一行的第一個輸入。它與錯誤的輸入相關聯。所有輸入都具有唯一的ID屬性,並且在刪除行後重新綁定datetimepicker類。任何人都有最模糊的想法,爲什麼datetimepicker指向錯誤的對象?具有諷刺意味的是,timepicker部分,不是來自jQuery UI本身,仍然指向正確的輸入。看起來,當刪除較小數字的行時,較高數字的行將被移動並重命名,但日期時間選擇器的日期部分仍然指向最初綁定的行號,如果這樣做有任何意義。刪除DOM元素後,jQuery UI datetimepicker綁定到錯誤輸入

幫助被讚賞,因爲這一個讓我難住。我已經嘗試手動釋放日期選擇器對象,然後刪除表單行,但似乎沒有任何幫助。

感謝

編輯:有沒有辦法徹底摧毀綁定到輸入元素之前,我刪除它們的日期選擇器的實例?

編輯:好吧,我只是有一個實現。我正在銷燬我正在刪除的行中的日期選擇器,但不是剩下的行,所以我將在此處理一分鐘,並查看是否在重建表單時完全破壞日期選擇器。

+0

儘管您提供了鏈接到您的網站,但您需要在您的問題中包含任何相關的代碼 - 所以相關的Javascript和HTML會很好 – Ian 2013-02-27 15:06:28

+3

*'這裏是烤大家的麪條'* - 可能的最佳候選人開始有句話 – George 2013-02-27 15:06:40

+0

你有沒有打擾檢查瀏覽器的控制檯?我得到2個錯誤。一個是你的DOCTYPE語法錯誤...所以我猜這是因爲你之前有文本 - HTML註釋'<! - php includes - >'(我認爲你不可以)。此外,你得到一個關於datetimepicker未被初始化的錯誤。因此,您需要調試代碼以確保在需要時調用所有代碼。 – Ian 2013-02-27 15:13:03

回答

0

好了,所以回答這個問題:它似乎在回想明顯,但的DateTimePicker插件是以稍微不同的方式進行編碼,可能效率較低,這種方式讓我不知所措。無論如何,我會盡力以清晰的方式解釋發生的事情。

datepicker對象在創建時綁定到元素的id,並保留該id直到它被銷燬。顯然,如果已經有一個日期選擇器對象,試圖綁定一個新的日期選擇器對象什麼也不做。

爲了記住問題,在setAlts()方法中,我簡單地銷燬了每個datepicker對象,並重新創建它。很簡單,但它讓我很困惑。

並感謝設置我在正確的道路上。否則,我可能會有一個chimpout,並開始在牆上塗抹我的便便。

1

沒有時間分析所有的代碼,但可能有助於調用$(elem).datetimepicker('destroy')當您刪除控制之前任何重新綁定。

+0

這是我嘗試的第一件事情之一,但我再次嘗試了很好的措施。問題依然存在。 – spuy767 2013-02-27 15:27:49

1

setAlts()

嘗試刪除var fields = $('.date').get();

,只是這樣做:

$('.date').each(function() { 

    $(this).datetimepicker('destroy'); // From Marcell 
    $(this).datetimepicker({ 
      minDate: now, 
      timeFormat: "h:mm tt", 
      stepMinute: 15, 
     }); 
}); 

如果刪除dateCheck()都應該罰款。

我認爲以下是你打算與dateCheck()雖然。 確定在dateCheck()

變化:

target.siblings('.date').datetimepicker('setDate', dateMin);

到:

target.next('.date').datetimepicker('minDate', dateMin);

+0

對不起,我知道這裏有很多醜陋的代碼,因爲過去三天​​我一直在咖啡因燃燒的憤怒中衝擊這件事,但我做了這個改變,問題依然存在。 – spuy767 2013-02-27 15:32:24

+0

雖然確實工作得更好,但現在只有開始日期更改了相應的結束日期,但結束日期與預期相同。看着它.. – Zac 2013-02-27 15:38:00

+0

更新,給它一個測試。 – Zac 2013-02-27 15:49:07