1
0
-1

for example like this 

so if i input manual on dsr_value will working 

but if i set value on java script like this 

<script>
// Ambil elemen input
const dsrValidationInput = document.getElementById("dsr_validation");
const penghasilanBulanInput = document.getElementById("penghasilan_bulan");
const dsrValueInput = document.getElementById("dsr_value");

// Fungsi untuk menghapus format angka (contoh: 25.000.000 menjadi 25000000)
function parseNumber(value) {
    return parseFloat(value.replace(/\./g, "").replace(",", ".")); // Konversi format desimal
}

// Fungsi untuk memeriksa rentang dan menentukan nilai DSR
function checkDSR() {
    // Ambil nilai dari input
    const dsrValidationValue = dsrValidationInput.value;
    const penghasilanBulanValue = penghasilanBulanInput.value;

    // Pastikan input memiliki nilai
    if (!dsrValidationValue || !penghasilanBulanValue) {
        dsrValueInput.value = ""; // Kosongkan nilai jika tidak valid
        return;
    }

    // Hapus format angka dari penghasilan
    const penghasilanBulan = parseNumber(penghasilanBulanValue);

    // Pisahkan rentang di dsr_validation
    const ranges = dsrValidationValue.split(",");

    let dsrValueFound = false; // Flag untuk memastikan rentang cocok

    for (const range of ranges) {
        const [min, max, dsr] = range.split("-").map((val, index) => 
            index < 2 ? parseInt(val, 10) : val
        );

        // Periksa apakah penghasilan berada dalam rentang
        if (penghasilanBulan >= min && penghasilanBulan <= max) {
            //dsrValueInput.value = dsr; // Masukkan nilai DSR ke input dsr_value
            FormUtil.getField("dsr_value").val(dsr);
            dsrValueFound = true; // Rentang ditemukan
            break; // Hentikan loop setelah rentang ditemukan
        }
    }

    if (!dsrValueFound) {
        dsrValueInput.value = ""; // Kosongkan nilai jika tidak ada rentang yang cocok
        return;
    }
}

// Jalankan fungsi saat formulir dimuat
document.addEventListener("DOMContentLoaded", () => {
    checkDSR(); // Periksa saat halaman dimuat
});

// Jalankan fungsi setiap kali nilai penghasilan berubah
penghasilanBulanInput.addEventListener("input", checkDSR);

// Jalankan fungsi setiap kali nilai dsr berubah
// Fungsi untuk memeriksa dokumen secara keseluruhan
document.addEventListener("change", () => {
    checkDSR(); // Periksa setiap kali ada perubahan di dokumen
});
</script>

the visible control on advance option section didn;'t working 

so how i can make advance option visiblity working when using javascript to set value?

    CommentAdd your comment...

    1 answer

    1.  
      2
      1
      0

      Hi Galvin,  when you update a field value using javascript / jquery, you need to trigger the change event for the form to recognize it and show the section. 


        var dsrValueInput= $('#dsr_value');    dsrValueInput.val(50).trigger('change');


      Hope this helps.

      1. galvin

        Thanks is working when add.trigger

      CommentAdd your comment...