Je dois changer le bouton radio du mode de livraison et d'expédition de l'expéditeur une seule fois via une fonction javascript, pas pour toujours.La fonction javascript n'arrête pas la boucle - Elle se trouve sur un site Web netsuite
Cependant, quand j'utilise cette fonction, qui exécute lorsque le Examiner et la page lorsque la commande est < 5 $, il va dans une boucle sans fin:
function setFreeSampShipping(){
var options = document.forms['checkout'].shippingcarrierselect.getElementsByTagName('option');
for (i=0;i<options.length;i++){
if (options[i].value == 'nonups'){
document.forms['checkout'].shippingcarrierselect.value='nonups';
document.forms['checkout'].shippingcarrierselect.onchange();
document.location.href='/app/site/backend/setshipmeth.nl?c=659197&n=1&sc=4&sShipMeth=2035';
}
}
}
Il est appelé à partir de cette partie la fonction setSampPolicyElems() que vous pouvez voir que je l'ai fait remarquer à arrêter la boucle:
if (carTotl < 5 && hasSampp == 1) {
/*
if (document.forms['checkout'].shippingcarrierselect.value =='ups'){
setFreeSampShipping();
}
*/
document.getElementById('sampAdd').style.display="none";
document.getElementById("custbody_ava_webshiptype").value = "7";//no charge free freight
if (document.getElementById("applycoupon")) {
document.location.href='/app/site/backend/setpromocode.nl?c=659197&n=1&sc=4&kReferralCode=SAMPLE'
}
document.write("<div id='msg'><strong>Sample & Shipping:</strong></span> No Charge. (Your sample order is < $5.)</div>");
}
pour voir le problème, passez à l'examen de l'ordre et de soumettre la page ici: https://checkout.netsuite.com/s.nl?c=659197&sc=4&n=1 (ou aller à http://www.avaline.com, appuyez sur "caisse" et connexion)
Vous pouvez vous connecter avec ces identifiants:
Courriel: [email protected]
Pass: test03
Ma solution à ce jour était d'échanger sur la ligne de déclenchement d'événements onchange() avec cela, car je ne suis pas en cours d'exécution document.location.href deux fois: à la place, je passe les deux variables dans une chaîne de requête URL:
var dropdown = document.getElementById('shippingcarrierselect');
document.body.style.cursor = 'wait';
document.location.href='/app/site/backend/setshipmeth.nl?c=659197&n=1&sc=4&sShipMeth=2035&sShipCarrier='+dropdown.value;
Il est possible que je suppose. Pour une raison quelconque, il a été listé comme une variable globale dans firebug bien que je ne sache pas où cela a été déclaré, et je n'ai pas rencontré de problèmes avant quand j'ai utilisé 'var i' pour les boucles .... Pourquoi stocker les options.length dans une variable? – Lauren