diff --git a/resources/views/component/form-penilai.blade.php b/resources/views/component/form-penilai.blade.php index 4008502..02d44fc 100644 --- a/resources/views/component/form-penilai.blade.php +++ b/resources/views/component/form-penilai.blade.php @@ -366,7 +366,7 @@ class="w-full currency" name="nilai_npw_${npwCounter}_1" placeholder="Harga per meter" - value="${npw.nilai_1 || ''}" + value="${npw.nilai_1 || '0'}" oninput="calculateTotal()"> @@ -398,10 +398,36 @@ calculateTotal(); }); - // Tambahkan event listener untuk currency format - newNPWRow.querySelectorAll('.currency-format').forEach(input => { - input.addEventListener('input', function() { - formatCurrency(this); + // Initialize currency formatting for existing values + newNPWRow.querySelectorAll('.currency').forEach(input => { + // Apply IMask immediately for existing values + if (input.value && input.value !== '0') { + window.IMask(input, { + mask: Number, + scale: 0, + thousandsSeparator: ".", + padFractionalZeros: false, + normalizeZeros: true, + radix: ",", + mapToRadix: ["."], + autofix: true, + }); + } + + // Also add blur event for future editing + input.addEventListener('blur', function() { + if (!this.imask) { + window.IMask(this, { + mask: Number, + scale: 0, + thousandsSeparator: ".", + padFractionalZeros: false, + normalizeZeros: true, + radix: ",", + mapToRadix: ["."], + autofix: true, + }); + } }); }); @@ -417,7 +443,7 @@ // Panggil fungsi load NPW saat halaman dimuat loadSavedNPW(); - document.querySelectorAll('.currency-format').forEach(input => { + document.querySelectorAll('.currency').forEach(input => { input.addEventListener('input', function() { formatCurrency(this); }); @@ -503,7 +529,7 @@ const outputElement = row.querySelector('input[id^="nilai_npw_"][id$="_2"]'); if (luasInput && nilaiInput && outputElement) { - const luas = parseInput(luasInput.value); + const luas = parseFloat(luasInput.value.replace(/[^0-9.]/g, '')) || 0; const nilai = parseInput(nilaiInput.value); const hasil = luas * nilai;