Beste tweakers (en ook tweaksters
),
Ik heb een vaag prolbeempje i.v.m. het submitten van forms. De situatie is als volgt:
Op een profielen site kan men zijn berichten zien, en is er de mogelijkheid om ze te verwijderen. Bij elk bericht staat een vinkvakje "verwijder dit bericht". Nu wil ik het zo maken dat op het moment dat iemand op "berichten verwijderen" klikt, er tenminste 1 vinkvakje aangevinkt moet zijn. Opzich werkt dit ook, ik heb een for loop gemaakt die de elementen van de form doorlopen en daarna controleren of huidige element een checkbox is, zoja hoogt hij de checkbox teller op.
Dit werkt echter allemaal prima, en ook geeft hij een waarschuwing als er te weinig checkboxes zijn aangevinkt. Echter heb ik een probleem met het submitten van de form ik heb 2 dingen geprobeerd:
Probeersol 1:
Uitleg:
Ik heb geprobeerd om de form handmatig te submitten als men aan de conditie voldoet. Echter geeft IE hier een fout op dat hij de methode niet kent, terwijl het toch echt een form object is wat hij mee geeft, althans als ik op internet zoek zie ik voorbeelden zoals: document.formnaam.submit(); , ik doe het ietsjes anders omdat ik mijn form geen naam wil geven: document.getElementById('formid').submit(); heb ik het dus zo gedaan, wat mij eigenlijk hetzelfde lijkt alleen dat ik mijn form een id attribuut moet geven.
In de form heb ik de volgende button staan:
<input type="submit" name="submit" value="doet er niet toe :p" onclick="deleteReacts()"/>
Dit werkt dus niet, en krijg ik de fout dat hij de methode niet kent (methode submit()).
Probeersol 2:
uitleg:
Eigenlijk hetzelfde, behalve dat de form een onsubmit attribuut heeft (onsubmit="return deleteReacts(this)" en hij geeft zijn eigen form als parameter, dit leek me ook de mooiste oplossing maar vaag genoeg op het moment dat de eerste if statement in de functie deleteReacts() evalueert tot true dan submit hij de form al. De functie is niet veel anders dan de bovenstaande behalve dan hij zijn eigen form object mij krijgt, en dus geen document.getElementById('form') gebruikt...
Op de volgende if statement submit hij de boel al (heb het al ge-debugt):
Ik was benieuwd of iemand hier al eerder problemen mee heeft gehad? Of iemand mij kan vertellen of ik iets over het hoofd zie? Ben immers geen javascript guru
tnx!
Ik heb een vaag prolbeempje i.v.m. het submitten van forms. De situatie is als volgt:
Op een profielen site kan men zijn berichten zien, en is er de mogelijkheid om ze te verwijderen. Bij elk bericht staat een vinkvakje "verwijder dit bericht". Nu wil ik het zo maken dat op het moment dat iemand op "berichten verwijderen" klikt, er tenminste 1 vinkvakje aangevinkt moet zijn. Opzich werkt dit ook, ik heb een for loop gemaakt die de elementen van de form doorlopen en daarna controleren of huidige element een checkbox is, zoja hoogt hij de checkbox teller op.
Dit werkt echter allemaal prima, en ook geeft hij een waarschuwing als er te weinig checkboxes zijn aangevinkt. Echter heb ik een probleem met het submitten van de form ik heb 2 dingen geprobeerd:
Probeersol 1:
Uitleg:
Ik heb geprobeerd om de form handmatig te submitten als men aan de conditie voldoet. Echter geeft IE hier een fout op dat hij de methode niet kent, terwijl het toch echt een form object is wat hij mee geeft, althans als ik op internet zoek zie ik voorbeelden zoals: document.formnaam.submit(); , ik doe het ietsjes anders omdat ik mijn form geen naam wil geven: document.getElementById('formid').submit(); heb ik het dus zo gedaan, wat mij eigenlijk hetzelfde lijkt alleen dat ik mijn form een id attribuut moet geven.
In de form heb ik de volgende button staan:
<input type="submit" name="submit" value="doet er niet toe :p" onclick="deleteReacts()"/>
Dit werkt dus niet, en krijg ik de fout dat hij de methode niet kent (methode submit()).
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function deleteReacts() { // --- // First we check if there are any messages selected, else we don't submit the form! // --- var formElements = document.getElementById('form'); var checkboxes = 0; //amount of selected checkboxes for( i=0; i < formElements.length; i++ ) { element = formElements.elements[i]; if( element.type == 'checkbox' ) { if( element.checked ) { checkboxes++; } } } if( checkboxes == 0 ) { alert('Je moet minstens een reactie selecteren!'); return false; } else { document.getElementById('form').submit(); } } |
Probeersol 2:
uitleg:
Eigenlijk hetzelfde, behalve dat de form een onsubmit attribuut heeft (onsubmit="return deleteReacts(this)" en hij geeft zijn eigen form als parameter, dit leek me ook de mooiste oplossing maar vaag genoeg op het moment dat de eerste if statement in de functie deleteReacts() evalueert tot true dan submit hij de form al. De functie is niet veel anders dan de bovenstaande behalve dan hij zijn eigen form object mij krijgt, en dus geen document.getElementById('form') gebruikt...
Op de volgende if statement submit hij de boel al (heb het al ge-debugt):
JavaScript:
1
| if( element.type == 'checkbox' ) { |
Ik was benieuwd of iemand hier al eerder problemen mee heeft gehad? Of iemand mij kan vertellen of ik iets over het hoofd zie? Ben immers geen javascript guru
tnx!