operator javascript tidak cocok dengan desimalx masukan

Oct 22 2020

Saya tidak mengerti mengapa ketika saya menggunakan nilai kondisi seperti a > btetapi tidak berfungsi dengan baik, mungkin karena nilai a = desimal. mengikuti kode saya:

HTML

<input type="text" class="form-control" name="numberdays"  id="numberdays" value="10.0/>
<input type="text" name="cutii" id="cutii" value="9.0">
<button class="btn btn-primary waves-effect" id="subcut" type="submit" disabled>

NASKAH

cutifrom.addEventListener('input',()=>{
            if (cutii.value > numberdays.value) {
            subcut.removeAttribute('disabled');
        }else{
            subcut.setAttribute('disabled','disabled');
        }
        }) ;  

hasilnya adalah tombol saya dinonaktifkan, seharusnya tidak.

ini js saya. sebenarnya angka hari saya menggunakan datepicker dan menghasilkan angka yang dihasilkan secara otomatis. mungkin karena memang kondisi operator yang saya pakai tidak terdeteksi. JS untuk datepicker

 <script type="text/javascript">
      $(document).ready(function(){ let $fromDate = $('#fromdate'), $toDate = $('#todate'); $fromDate.datepicker().on('change', function(){
        $toDate.datepicker('option', 'minDate', $(this).val());
    });

    $toDate.datepicker().on('change', function(){ $fromDate.datepicker('option', 'maxDate', $(this).val()); });; }); $(function() {
    let $fromDate = $('#fromdate'),
        $toDate = $('#todate'),
        $numberDays = $('#numberdays'),
        $numberCuti = $('#cuti');

    $fromDate.datepicker().on('change', function(){ $toDate.datepicker('option', 'minDate', $(this).val()); $numberDays.val(calculateDateDiff($toDate.val(), $(this).val()));
    });

    $toDate.datepicker().on('change', function(){ $fromDate.datepicker('option', 'maxDate', $(this).val()); $numberDays.val(calculateDateDiff($(this).val(), $fromDate.val()));
    });

   cutifrom.addEventListener('input',()=>{
        if (parseFloat(cuti.value) >= parseFloat(numberdays.value)) {
        subcut.removeAttribute('disabled');
    }else{
        subcut.setAttribute('disabled','disabled');
    }
    }) ;     
        
function calculateDateDiff(endDate, startDate) {
        if (endDate && startDate) {
            let e = moment(endDate),
                s = moment(startDate);

            return e.diff(s, "days");
        }

        return null;
    }   
});
</script>

Jawaban

3 semicolon Oct 23 2020 at 03:09

Nilai Anda adalah tipe String dan perbandingannya tidak seperti Angka, coba ubah nilai menjadi angka dan lihat apakah berhasil.

Anda perlu mengubah kode ke formulir ini:

  cutifrom.addEventListener('input',()=>{
        if (Number(cutii.value) > Number(numberdays.value)) {
        subcut.removeAttribute('disabled');
    }else{
        subcut.setAttribute('disabled','disabled');
    }
    }) ; 

Semoga berhasil :)