Ajax error saat input cepat

misi gan, ane dsni iseng mau bikin web pulsa online, yg jadi kendala di saat input nomor hp cepat option produk ga tampil, tapi kalo input nomor hp lambat atau santuy gtu option produk muncul, ada yg salah ya dari kode saya, kode sendiri + referensi dri google hehhe

<input onchange="ajaxProduct(this.value)" oninput="ajaxProduct(this.value)" type="text" class="form-control" name="hp" maxlength="20" value="" autocomplete="off" required>

<select class="form-control" name="kode" id="kode" required>
<option value="" selected="">Pilih salah satu</option>
</select>

var myAjax;
function ajaxProduct(id){

    if(id.substr(0, 3)=='+62') {
      id = "0" + id.substr(3, id.length);
    }

    if(id.substr(0, 2)=='62') {
      id = "0" + id.substr(2, id.length);
    }

    if( (id.length>=4 && id.charAt(0)=='0') || (id.length>=3 && id.charAt(0)=='9') ){
      myAjax = makeAjax();
      var url="https://www.website.com/functions/inc/cekproduk.php?nomor=";
      url=url+id;
      myAjax.onreadystatechange=stateChangedProduct;
      myAjax.open("GET",url,true);
      myAjax.send(null);
      toggle(id);
    }
    else{
      document.getElementById("kode").innerHTML = "<option selected>Pilih nominal</option>";
    }
}

function makeAjax(){
    if (window.XMLHttpRequest){
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject){
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

function stateChangedProduct(){
    var data;
    if (myAjax.readyState==4 && myAjax.status==200){
      data=myAjax.responseText;
      if(data.length>=0){
        document.getElementById("kode").innerHTML = data
      }else{
        document.getElementById("kode").value = "<option selected>Pilih nominal</option>";
      }
    }
}

di url https://www.website.com/functions/inc/cekproduk.php?nomor= itu berisi function untuk cek nomor, contoh https://www.website.com/functions/inc/cekproduk.php?nomor=082261788475 nnti menampilkan produk tel*omsel dll sesuai provider, makasih sebelumnya.

avatar simuf
@simuf

43 Kontribusi 5 Poin

Diperbarui 5 tahun yang lalu

1 Jawaban:

coba ganti ke onkeyup <pre> &lt;input onkeyup="ajaxProduct(this.value)" type="text" class="form-control" name="hp" maxlength="20" value="" autocomplete="off" required&gt; </pre>

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 5 tahun yang lalu

Tanggapan

belom bisa juga om, jdi pas nginput kode nya kudu berenti dlu sampe option nya keluar, cth 082261788475 pas 0822 itu berenti nah kalo option nya dah keluar baru lanjut lagi tapi pas kelar input option nya blank, ane udh ganti cara sih cuma kalo masih penasaran ma kode ini bisa di bantu heheheh

kurang paham saya sama maksudnya.

Login untuk ikut Jawaban