Hallo zusammen,
aus einem Formular möchte ich nur angekreuzte Elemente ausgelesen, und sie in ein mehr dimensionalen Array schreiben, aber sind die ersten Werte am Anfang der Checkbox größer als Einst, z.B.. 45 oder 39 und danach folgt erst die Einst sollen sie auch vor der Einst im Array auftreten, mein Code sieht folgendermaßen aus:
...
function zustand_box(zObj)
{
reg_n = /[1]/;
var alle="", i=0, j=0, q=1, k=0;
var a_wert = new Array();
for (var i=0; i< zObj.length; i++)
{
j=i, k=i;
j+=2;
k+=1;
if(reg_n.exec(zObj[i].name) && zObj[i].value != 'Save' && zObj[i].value != 'Weiter')
{
if(document.form1.elements[i].checked == true) // OK
{
a_wert[document.form1.elements[i].value] = new Array();
if(document.form1.elements[i].value > 37)
{
a_wert[document.form1.elements[i].value][1] = a_wert.unshift(document.form1.elements[i].value);
a_wert[document.form1.elements[i].value][2] = a_wert.unshift(zObj[k].value);
a_wert[document.form1.elements[i].value][3] = a_wert.unshift(zObj[j].value);
}
else
{
a_wert[document.form1.elements[i].value][1] = document.form1.elements[i].value;
a_wert[document.form1.elements[i].value][2] = zObj[k].value;
a_wert[document.form1.elements[i].value][3] = zObj[j].value;
}
}
}
}
return a_wert;
}
...
In dieser Funktion habe ich mit "unshift" versucht, leider ohne Erfolg, wenn ich den Array ohne die If-Abfrage baue etwas so:
a_wert[document.form1.elements[i].value][1] = document.form1.elements[i].value;
a_wert[document.form1.elements[i].value][2] = zObj[k].value;
a_wert[document.form1.elements[i].value][3] = zObj[j].value;
wird das Array automatisch sortiert dh. von Null bis zum größten Wert, das möchte ich verhindern, wie kann ich das machen?
Danke im Voraus.
Grüße Bernhard
box_. ↩︎