此問題僅爲Jquery Datatables Date Range Filter的場景複製。數據表加載正確,但在選擇日期時拋出以下錯誤。以下錯誤被拋出:Datatable datefilter正確加載但在選擇日期時拋出Uncaught TypeError
Uncaught TypeError: Cannot set property 'currentDay' of undefined
at Datepicker._selectDay (jquery-ui.1.12.1.js:8188)
at HTMLTableCellElement.selectDay (jquery-ui.1.12.1.js:8789)
at HTMLTableCellElement.dispatch (jquery.v1.12.0.min.js:3)
at HTMLTableCellElement.r.handle (jquery.v1.12.0.min.js:3)
檢查 這個問題是衆所周知的。例如,如果日期選擇器元素ID是「#datepickerStart」,則它應該僅在給定頁面中加載一次。如果兩個DOM元素具有相同的元素ID,則會拋出上述錯誤。
我們主要用於Jquery Datatables Date Range Filter中給出的單個字段搜索。當我在瀏覽器中檢查開發人員工具時,可以看到兩個DOM生成了「#datepickerStart」。一個在搜索區域中是正確的,另一個是在表格區域的末尾。
我很困惑如何通過下面的代碼生成這些重複的表列。請知道發生這種情況時,要麼注入下面的代碼或將原始的HTML搜索文本框:
$('#example tfoot th').each(function(){
var title = $(this).text();
if (title === "Start date") {
$(this).html('<input type="text" id="datepickerStart" placeholder="Search '+title+'" />');
} else if (title === "End date") {
$(this).html('<input type="text" id="datepickerEnd" placeholder="Search '+title+'" />');
} else {
$(this).html('<input type="text" placeholder="Search '+title+'" />');
}
});
難道我錯過的東西或我這樣做是錯誤的方式?我交叉檢查了我沒有初始化數據表兩次或創建了兩次datePicker元素。
你能幫忙解決它出錯的地方嗎?提前致謝。
編輯1: 表結構的建立如下,
<table id='example' class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>URL</th>
<th>Title</th>
<th>User</th>
<th>Start date</th>
<th>End date</th>
<th>Duration</th>
</tr>
</thead>
<tfoot>
<tr>
<th>URL</th>
<th>Title</th>
<th>User</th>
<th>Start date</th>
<th>End date</th>
<th>Duration</th>
</tr>
</tfoot>
</table>
任何原因,你不把HTML直入表頁腳HTML? – Bindrid
@Bindrid我不明白你的問題,但我的表結構看起來像上面給出的(剛剛編輯問題)初始化數據表代碼之前。 – webblover