form submit bij click on label
Een vraagje...
Stel ik heb een vraag met 3 antwoorden
Vraag 1:
Antwoord A
Antwoord B
Antwoord C
Wat ik wil, is dat wanneer er op een label wordt geklikt, het formulier automatisch wordt gesubmit. Nu wil ik niet aan ieder label een onclick event hangen, maar ik wil gebruik maken van een event listener.
Die event listener moet dan zien dat er op een label is geklikt en vervolgens het formulier versturen. Iemand een ideetje?
p.s. in raw javascript (dus geen jQuery e.d.)
Gewijzigd op 01/10/2012 15:18:35 door Ozzie PHP
Maak er een <select> van en je hebt maar één onClick/onChange nodig.
Iemand een ideetje / voorzet?
Je zegt net dat je maar één vraag hebt.
Ik bedoel... ik heb meerdere antwoorden en die staan onder elkaar in beeld met een plaatje erbij (plaatje fungeert als label). Bij een klik op het plaatje (label) moet het formulier verstuurd worden.
Toevoeging op 01/10/2012 15:42:50:
laat maar even, ik kom er denk ik wel uit...
// checkbox clicked
// $("#formId").submit() of $(this).parent("form").submit();
});
zoiets?
Gewijzigd op 01/10/2012 16:03:18 door Jaron T
Maar ik heb het waarschijnlijk al opgelost met addEventListener.
Waarom zou je het jezelf moeilijk maken met 'raw javascript'..? Nu heb je misschien een oplossing voor probleem a gevonden.. maar bij probleem b ga je weer opnieuw het wiel uitvinden.
Toevoeging op 01/10/2012 16:06:10:
Ben sowieso niet een voorstander van die libraries... heb altijd het idee dat dan ineens m'n code niet meer zou kunnen werken als er een update uitkomt.
Ozzie PHP op 01/10/2012 16:02:59:
... al opgelost met addEventListener.
Je weet dat addEventListener problemen geeft in oudere IE-versies?
Hiermee wordt dit opgelost (vanaf lijn 82)
http://www.phphulp.nl/php/forum/topic/utilsjs/85665/last/
Gewijzigd op 01/10/2012 16:27:38 door Kris Peeters
Code (php)
1
2
3
4
5
2
3
4
5
if (el.addEventListener) {
el.addEventListener('click', submitForm, false);
} else if (el.attachEvent) {
el.attachEvent('onclick', submitForm);
}
el.addEventListener('click', submitForm, false);
} else if (el.attachEvent) {
el.attachEvent('onclick', submitForm);
}
Toevoeging op 01/10/2012 16:45:56:
Grrr.... nu gaat ie wel het formulier posten als ik op een label click... maar hij stuurt de waarde niet door :-s
Ik zou verwachten dat als ik op een label klik, dat ie dan de radiobutton selecteert (dit zie ik ook gebeurenh) en vervolgens het formulier post. Toch wordt het formulier leeg verstuurd... huh?? :-s
Om het formulier te versturen gebruik ik
document.forms['naam_van_formulier'].submit();
Iemand een idee wat er mis gaat?
Toon eens hoe je die radio buttons bindt, met addEventListener.
Toevoeging op 01/10/2012 16:55:33:
Ik zie de radiobutton wel geselecteerd worden zodra ik op een label klik. En dan vervolgens wordt het formulier gepost. In de $_POST array zit wel de waarde van een hidden field, maar de aangeklikte radio button wordt niet meegenomen.
Gewijzigd op 01/10/2012 16:56:41 door Ozzie PHP
Probeer eens om toch te submitten op de onChange van de radio button.
---
Ook oppassen, mocht je ergens iets van e.preventDefault() gebruiken (of zoiets), dat je geen gedrag tegenhoudt dat wel moet gebeuren.
bv. als je dit toepast op een click op een labal, zou ik verwachten dat het label zijn werk niet meer doet en dus de waarde van de input niet aanpast
Kris, dankjewel! Ik kon nog net testen voordat ik van werk naar huis ging. Als ik de radio buttons bindt ipv de labels dan werkt het wel :) Misschien inderdaad wat jij zegt dat ik de default behaviour van de labels kapot had gemaakt :) Ik moet nog wel morgen even testen of het in alle browsers goed gaat.