Fix: agresif override browser cache untuk dateInput dengan removeAttribute, requestAnimationFrame, dan setTimeout
This commit is contained in:
@@ -77,7 +77,7 @@
|
|||||||
<section class="filters">
|
<section class="filters">
|
||||||
<div class="filter-group">
|
<div class="filter-group">
|
||||||
<label for="filter-date" class="filter-label">Tanggal</label>
|
<label for="filter-date" class="filter-label">Tanggal</label>
|
||||||
<input id="filter-date" type="date" class="filter-control" />
|
<input id="filter-date" type="date" class="filter-control" autocomplete="off" />
|
||||||
</div>
|
</div>
|
||||||
<div class="filter-group">
|
<div class="filter-group">
|
||||||
<label for="filter-location" class="filter-label">Lokasi</label>
|
<label for="filter-location" class="filter-label">Lokasi</label>
|
||||||
|
|||||||
@@ -146,7 +146,7 @@
|
|||||||
<section class="filters">
|
<section class="filters">
|
||||||
<div class="filter-group">
|
<div class="filter-group">
|
||||||
<label for="filter-date" class="filter-label">Tanggal</label>
|
<label for="filter-date" class="filter-label">Tanggal</label>
|
||||||
<input id="filter-date" type="date" class="filter-control" />
|
<input id="filter-date" type="date" class="filter-control" autocomplete="off" />
|
||||||
</div>
|
</div>
|
||||||
<div class="filter-group">
|
<div class="filter-group">
|
||||||
<label for="filter-location" class="filter-label">Lokasi</label>
|
<label for="filter-location" class="filter-label">Lokasi</label>
|
||||||
@@ -852,11 +852,31 @@
|
|||||||
// Lakukan ini SEBELUM setupFilters() untuk memastikan value ter-set dengan benar
|
// Lakukan ini SEBELUM setupFilters() untuk memastikan value ter-set dengan benar
|
||||||
const dateInput = document.getElementById('filter-date');
|
const dateInput = document.getElementById('filter-date');
|
||||||
if (dateInput) {
|
if (dateInput) {
|
||||||
// Force set value dan attribute untuk override browser cache
|
// AGGRESIF: Remove value dulu, lalu set lagi untuk force override browser cache
|
||||||
|
dateInput.removeAttribute('value');
|
||||||
|
dateInput.value = '';
|
||||||
|
|
||||||
|
// Set value multiple times dengan berbagai cara untuk memastikan
|
||||||
dateInput.value = today;
|
dateInput.value = today;
|
||||||
dateInput.setAttribute('value', today);
|
dateInput.setAttribute('value', today);
|
||||||
// Juga set property langsung untuk memastikan
|
|
||||||
dateInput.defaultValue = today;
|
dateInput.defaultValue = today;
|
||||||
|
|
||||||
|
// Force update dengan requestAnimationFrame untuk memastikan DOM sudah ready
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
dateInput.value = today;
|
||||||
|
dateInput.setAttribute('value', today);
|
||||||
|
console.log('[Events] Date input force set (RAF):', today, 'actual value:', dateInput.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set lagi setelah semua async operations selesai
|
||||||
|
setTimeout(() => {
|
||||||
|
if (dateInput.value !== today) {
|
||||||
|
dateInput.value = today;
|
||||||
|
dateInput.setAttribute('value', today);
|
||||||
|
console.log('[Events] Date input force set (timeout):', today, 'actual value:', dateInput.value);
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
|
||||||
console.log('[Events] Date input set to:', today, 'actual value:', dateInput.value);
|
console.log('[Events] Date input set to:', today, 'actual value:', dateInput.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -775,11 +775,31 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
// Lakukan ini SEBELUM setupFilters() untuk memastikan value ter-set dengan benar
|
// Lakukan ini SEBELUM setupFilters() untuk memastikan value ter-set dengan benar
|
||||||
const dateInput = document.getElementById('filter-date');
|
const dateInput = document.getElementById('filter-date');
|
||||||
if (dateInput) {
|
if (dateInput) {
|
||||||
// Force set value dan attribute untuk override browser cache
|
// AGGRESIF: Remove value dulu, lalu set lagi untuk force override browser cache
|
||||||
|
dateInput.removeAttribute('value');
|
||||||
|
dateInput.value = '';
|
||||||
|
|
||||||
|
// Set value multiple times dengan berbagai cara untuk memastikan
|
||||||
dateInput.value = today;
|
dateInput.value = today;
|
||||||
dateInput.setAttribute('value', today);
|
dateInput.setAttribute('value', today);
|
||||||
// Juga set property langsung untuk memastikan
|
|
||||||
dateInput.defaultValue = today;
|
dateInput.defaultValue = today;
|
||||||
|
|
||||||
|
// Force update dengan requestAnimationFrame untuk memastikan DOM sudah ready
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
dateInput.value = today;
|
||||||
|
dateInput.setAttribute('value', today);
|
||||||
|
console.log('[Dashboard] Date input force set (RAF):', today, 'actual value:', dateInput.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set lagi setelah semua async operations selesai
|
||||||
|
setTimeout(() => {
|
||||||
|
if (dateInput.value !== today) {
|
||||||
|
dateInput.value = today;
|
||||||
|
dateInput.setAttribute('value', today);
|
||||||
|
console.log('[Dashboard] Date input force set (timeout):', today, 'actual value:', dateInput.value);
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
|
||||||
console.log('[Dashboard] Date input set to:', today, 'actual value:', dateInput.value);
|
console.log('[Dashboard] Date input set to:', today, 'actual value:', dateInput.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user