Säg att jag ett div-element, som jag snappar upp såhär:
var myDiv = document.getElementById('myDiv');
Inuti denna div så finns det ett input-element med ett visst namn.
Hur hämtar jag det på lättast sätt?
Det här vill ju inte fungera, eftersom DOM-metoden "getElementsByName" bara finns för document.
var myInput = myDiv.getElementsByName('myInput')[0]; //Funkar inte =(
Det vore lättare om det var en FORM istället för en DIV... ;)
Annars får du förmodligen loopa igenom alla input-element och kolla .name tills du hittar det du söker. Eller använda myDiv.matchSingle("input[name=myInput]") med base2.
Jag skulle kunna ändra till en form.
Men grejen är att det ska ju inte användas som ett traditionellt formulär, utan tredig Ajax som vi alla älskar :P
Ett form kräver väl en action? Frågan är vad jag ska sätta där...ett # kanske?
Sen går ju formulär att submitta vilket kan ställa till lite problem. (Går iof att förhindra med Javascript.)
Den aropas såhär:
getElementsByName(element,sträng1,sträng2);
element = elementet som du vill söka under.
sträng1 = vilka taggar du vill söka om de innehåller namnet
sträng2 = vilket namn
Funktionen ska väl mest ses som proof-of-concept och en lösning när det inte finns någon bättre. :)
Jag skulle nog använda ett formulär. Du behöver inte ange action="". Det är bara säga return false på onsubmit. Du kan också göra andra saker på submit (istället för att tex använda onclick på submitknappen).
colione, tack för din cooola funktion! :P
Den hjälpte mig på två sätt:
- Den löste mitt ursprungliga problem.
- Den fick mig samtidigt att tänka om och byta ut DIV mot FORM.
zcorpan, är inte action-attributet required enligt rekommendationen?
Som du säger så är det lite elegantare att använda onsubmit istället för onclick, och sedan stoppa eventet och istället utföra Ajax-anropen. Det får bli lösningen!
Hur som helst, om detta ska bli en riktigt bra webbapplikation så borde man ju egenligen bygga lite fallbacks som man submittar mot när klienten inte har Javascript-stöd. Men det får bli nästa projekt :e
zcorpan, är inte action-attributet required enligt rekommendationen?
Jo. Fast HTML4 skrevs 1997, innan Ajax var påtänkt. Att använda formulär till något annat än att skicka information till servern tänkte man inte på när man skrev HTML4. Du kan förstås lägga dit "action=""", det skadar inte, men det gör ingen nytta heller. :)