Die JavaScript -Funktion hört nicht auf, zu schleifen - sie befindet sich auf einer NetSuite -Website

StackOverflow https://stackoverflow.com/questions/2975759

Frage

Ich muss das Dropdown- und Versandmethode des Versandträgers einmal über eine JavaScript-Funktion ändern, nicht für immer.

Wenn ich diese Funktion jedoch verwende, die bei der Überprüfung und Sendenseite ausgeführt wird, wenn die Bestellung <$ 5 ist, geht sie in eine endlose Schleife ein:

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';
  }
 }
}

Es wird innerhalb dieses Teils der Funktion setSamppolicyElems () aufgerufen, die Sie sehen können, um die Schleife zu stoppen:

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>");
}

Um das Problem anzuzeigen, besuchen Sie die Bestellüberprüfung und senden Sie hier die Seite:https://checkout.netuite.com/s.nl?c=659197&sc=4&n=1 (oder gehen zu http://www.avaline.com, klicken Sie auf "Checkout" und melden Sie sich an)

Sie können sich mit diesen Anmeldeinformationen anmelden:
E -Mail: test2@gmail.com
Pass: Test03

Meine bisherige Lösung bestand darin, die ONCHANGE () -Event -Trigger -Linie damit auszutauschen. Seitdem führe ich kein Dokument aus.

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;
War es hilfreich?

Lösung 2

Das war meine Lösung:

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;

Andere Tipps

Ihre Variable "I" ist global. Sie sollten auch Optionen speichern. Länge in der Variablen. "Ich" könnte von einigen Skripten festgelegt werden, die unendliche Schleife verursachen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top