2016-10-22 2 views
1

Ich brauche Hilfe in Javascript, meinen Code in Woocommerce (Kasse) ist:prevent (JavaScript) nicht in Arbeitswordpress

<script type="text/javascript"> 
 
document.getElementById("billing_city").onkeyup = function validarDistrito(event){ 
 
    // do stuff 
 
    var billinginfo = document.getElementsByName("billing_city")[0].value; 
 
\t var distritoArray= ["Barranco","Breña","Jesús María","La Victoria","Lince","Miraflores","Pueblo Libre","San Borja","San Isidro","San Luis","San Miguel","Surco","Surquillo","Callao","La Molina","Lima Cercado","Magdalena", "Rimac", "Lima Metropolitana"]; 
 
\t 
 
    console.log(billinginfo); 
 
    for (i = 0; i < distritoArray.length; i++) { 
 
     if(distritoArray[i].toUpperCase() == billinginfo.toUpperCase()){ 
 
      document.getElementById('payment_method_bacs').disabled = false; 
 
      alert('igual'); 
 
     }else{ 
 
      document.getElementById('payment_method_bacs').disabled = true; 
 
     } 
 
    } 
 
    event.preventDefault(); 
 
} 
 
</script>

Der Code funktioniert sehr gut, aber dann ein paar Sekunden später wird es aktualisiert und kehrt zu einem vorherigen Zustand zurück. Und ich benutze die Methode preventDefault(); aber es funktioniert nicht in WordPress.

PD: Das gleiche gilt für die Verwendung von jquery.

Danke!

Antwort

0

Sie verwenden e.preventDefault(); wenn es event.preventDefault() sein muss;

einen Blick auf validarDistrito (Ereignis) Sie benannte Ereignis die Variable

diesen Code versuchen

<script> 
document.getElementById("billing_city").onkeyup = function validarDistrito(event){ 
    // do stuff 
    var billinginfo = document.getElementsByName("billing_city")[0].value; 
    var distritoArray= ["Barranco","Breña","Jesús María","La Victoria","Lince","Miraflores","Pueblo Libre","San Borja","San Isidro","San Luis","San Miguel","Surco","Surquillo","Callao","La Molina","Lima Cercado","Magdalena", "Rimac", "Lima Metropolitana"]; 

    console.log(billinginfo); 
    for (i = 0; i < distritoArray.length; i++) { 
     if(distritoArray[i].toUpperCase() == billinginfo.toUpperCase()){ 
      document.getElementById('payment_method_bacs').disabled = false; 
      return; 
     }else{ 
      document.getElementById('payment_method_bacs').disabled = true; 
     } 
    } 
    event.preventDefault(); 
} 
</script> 

der Sache ist, dass distroArray den Rest davon Validierung halten wird, so dass, wenn die Eingabewert ist gleich einem der Werte des Arrays, müssen Sie die Validierung zu stoppen

+0

Vielen Dank, ich habe es geändert, aber immer noch nicht reagiert. –

+0

Danke, aber es funktioniert einfach nicht, das Problem ist Konflikt mit anderen Javascript, denke ich. Ich werde Wordpress Plugin letzte Option verwenden. –