vreemd gedrag jquery/javascript

Status
Niet open voor verdere reacties.

Bounced

Nieuwe gebruiker
Lid geworden
13 jan 2011
Berichten
2
Hallo,

ik probeer een multidemensionale array te maken op basis van een opnummering en naam van inputvelden om zo de waarde van de velden op te slaan.
form[j][this.name] = this.value;
maar op een of andere manier lukt het niet, kunnen jullie svp eens mee kijken wat er niet goed gaat?

[JS]
$(document).ready(function(){
var j = 0;
var form = [];
$('#verzenden').click(function(){
$(':input', '#submitform').each(function(){
var form[j] = [];
form[j][this.name] = this.value;
j++;
});
});
});
[/JS]

wat ik nu terug krijg is
missing ; before statement
[Afbreken op deze fout] var form[j] = [];
 
Je probleem komt van dit:[JS]var form[j] = [];[/JS]dit komt omdat je hier een variabele maakt welke gelijk een array index heeft. Iets van, 'maak een variabele welke eigenlijk al bestond'. Zo werkt het natuurlijk niet: var kan alleen een variabele maken (en eventueel er een waarde aan plakken, zoals een array of een string of een getal).


Trouwens, je hebt een scoping probleem. Je maakt eerst een var genaamd 'form'; dan, in een anonieme functie, maak je opnieuw de variabele 'form' aan. Deze geld anders alleen in die functie.

Overgens weet ik niet precies hoe het zit met .each, maar zowiezo zitten je variabelen een beetje raar. Als je wilt dat je form variabele buiten de document.ready werkt, moet je de variabelen wel buiten de functie neerzetten

Ohja, en je kan, als je een array gaat maken met strings ipv. getallen, beter een object gebruiken. Alles blijft hetzelfde, behalve dat je {} moet gebruiken ipv. [].

-->

[JS]var j = 0, form = []; // globaal

$(document).ready(function(){
$('#verzenden').click(function(){
$(':input', '#submitform').each(function(){
form[j] = {}; // geen 'var', en new Object() ipv. new Array()
form[j][this.name] = this.value;
j++;
});
});
// eerst zouden var 'j' en 'form' hier 'doodgaan'
});[/JS]
 
Laatst bewerkt:
Top,
het werkt!
nu kijken dat ik het met een post naar de server gepushed krijg.

bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan