2012-03-30 4 views
0

Ich versuche, eine Reihe von SELECT OPTION HTML Dropdown-Felder und von denen, die nicht leer sind zu iterieren , nehmen Sie die Werte und fügen Sie ein verstecktes Feld für einen PAYPAL Einkaufswagen hinzu

Mein Problem ist, dass aus irgendeinem Grund die Variable "curitem" nicht innerhalb der each Funktion übergeben wird und ich das versteckte Feld nicht wie sie hinzufügen kann . sollte Alles, was ich "NaN" oder "undefiniert" erhalten

Was PAYPAL erwartet ist. item_name_1, item_name_2 usw. Alle Zahlen müssen von +1 iterieren

Wie ca. n tue ich das?

Dank einem Haufen im Voraus

var curitem; 

$.each($("select"), function(index, item) { 

    var attname = $(this).attr("name"); 
    var nom = $(this).attr("data-nom"); 
    var prix = $(this).attr("data-val"); 
    var partname = attname.substring(0, 1); 
    var qte = $(this).val(); 

    // i want all my <select option> items that the NAME start with "q" AND have a value selected 
    if (partname == "q" && isNaN(qte) == false && qte > 0) { 

     // item name 
     var inp2 = document.createElement("input"); 
     inp2.setAttribute("type", "hidden"); 
     inp2.setAttribute("id", "item_name_"+curitem); 
     inp2.setAttribute("name", "item_name_"+curitem); 
     inp2.setAttribute("value", nom); 

     // amount 
     var inp3 = document.createElement("input"); 
     inp3.setAttribute("type", "hidden"); 
     inp3.setAttribute("id", "amount_"+curitem); 
     inp3.setAttribute("name", "amount_"+curitem); 
     inp3.setAttribute("value", prix); 

     // qty 
     var inp4 = document.createElement("input"); 
     inp4.setAttribute("type", "hidden"); 
     inp4.setAttribute("id", "quantity_"+curitem); 
     inp4.setAttribute("name", "quantity_"+curitem); 
     inp4.setAttribute("value", qte); 

     // add hidden fields to form 
     document.getElementById('payPalForm').appendChild(inp2); 
     document.getElementById('payPalForm').appendChild(inp3); 
     document.getElementById('payPalForm').appendChild(inp4); 


     // item number 
     curitem = curitem + 1; 
    } 
}); 
+0

warum nicht gesetzt 'var curitem = 0;'? –

+0

Noch etwas: Sie können Ihre "data-" Tag Attribute über $ .data() Methode –

+1

zugreifen Warum nicht 'index' statt? Und '$ ('select'). Je (Funktion (index, item) {...})' könnte netter sein. –

Antwort

1

Ich glaube, Sie curitem Variable zu initialisieren haben.

var curitem = 1;

+0

ist es in der ersten Zeile des Codes initialisiert. Wenn ich es in die JQuery lege, funktioniert es nicht. – Joel

+0

Der Var-Curitem ist in der ersten Zeile undefiniert. Sie müssen einen Wert angeben, damit dies funktioniert "curitem = curitem + 1;" –

+0

ok ... das ist komisch. Zuerst wurde 'curitem' definiert, wie du es mir gesagt hast. Dann, als ich hier gepostet habe, habe ich versucht, 'var curitem;'. Dann spielte ich einfach herum und änderte es in 'var i = 0;' ... und es funktionierte. Ich frage mich, ob meine Macrabbit Espresso Software keine Fehler erzeugt, die ich nicht sehen kann ... – Joel

Verwandte Themen