enable or disable submit button in jquery when field jml_automatic is lower than id_km field
i just learn jquery last month, and now i try to work on a form with jquery to allow users to input request for gas. but the script not work to compare value from #jml_km with #id_km and the submit button still not disabled when the the value from compare is true
<strike> <form class="form-horizontal" role="form" action="<?php echo $action; ?>" method="post" id="form"> <div class="form-group"> <label class="col-xs-8 col-sm-3" for="id_tipe">Tipe Aset</label> <div class="col-xs-8 col-sm-3"> <?php echo form_dropdown('field[id_tipe]', $list_tipe,$id_tipe, 'id="id_tipe" class="form-control" required'); ?> </div> </div> <div class="form-group"> <label class="col-xs-8 col-sm-3" for="id_km">Kilometer</label> <div class="col-xs-8 col-sm-3"> <?php echo form_dropdown('field[id_km]', $list_kilometer,$id_km, 'id="id_km" class="form-control" required'); ?> </div> </div> <div class="form-group"> <label class="col-xs-8 col-sm-3" for="km_sebelumnya">Kilometer Sebelumnya</label> <div class="col-xs-8 col-sm-3"> <input type="text" placeholder="Kilometer Sebelumnya" id="km_sebelumnya" name="field[km_sebelumnya]" class="form-control" value="<?=$km_sebelumnya?>" > </div> </div> <div class="form-group"> <label class="col-xs-8 col-sm-3" for="km_pengajuan">Kilometer Pengajuan</label> <div class="col-xs-8 col-sm-3"> <input type="text" placeholder="Kilometer Pengajuan" id="km_pengajuan" name="field[km_pengajuan]" class="form-control" value="<?=$km_pengajuan?>" > </div> </div> <div class="form-group"> <label class="col-xs-8 col-sm-3" for="jml_km">Jumlah Kilometer</label> <div class="col-xs-8 col-sm-3"> <input type="text" placeholder="Jumlah Kilometer" id="jml_km" name="field[jml_km]" class="form-control" value="<?=$jml_km?>" readonly > </div> </div> <div class="form-group"> <label class="<?php echo COL_FORM_LABEL;?>"></label> <div class="<?php echo COL_FORM_INPUT;?>"> <button class="btn btn-info" type="submit" id="btn_submit">Simpan</button> <button class="btn btn-default" type="button" id="btnClear">Hapus</button> <button class="btn btn-danger" type="button" id="btn_back">Kembali</button> </div> </div>
$(document).ready(function() { $("#km_sebelumnya, #km_pengajuan").keyup(function() { var km_sebelumnya = $("#km_sebelumnya").val(); var km_pengajuan = $("#km_pengajuan").val(); var jml_km = parseInt(km_pengajuan) - parseInt(km_sebelumnya); $("#jml_km").val(jml_km); }); }); $(document).on('change', '#jml_km', function(){ $('#btn_submit').prop('disabled',true); var idKm = parseInt($('#id_km').val()); var jmlKm = parseInt($(this).val()); if ($(this).val() >= $('#id_km').val() ) { $('#btn_submit').prop('disabled', false); } else { $('#btn_submit').prop('disabled', true); } });
the problem is submit button still not disable when the compare produce true, please help
You can try the below script, it’s working.
if ($(this).val() >= $('#id_km').val() ) { $('#btn_submit').removeAttr("disabled", "disabled"); $('#btn_submit').css("cursor", "pointer"); } else { $('#btn_submit').attr("disabled", "disabled"); $('#btn_submit').css("cursor", "not-allowed"); }
the output of this code if ($(this).val() >= $('#id_km').val() )
makes 5>32, its a comparison between first digits, not a comparison between their values , to fix it use if (Number($(this).val()) >= Number($('#id_km').val()) )