Avatar billede askeb Nybegynder
08. marts 2008 - 11:56 Der er 9 kommentarer

Tilføj form element

Hej jeg er ved at lave en side så man kan foreslå aftaler til en gruppe.
www.bodebrixen.dk/opret.asp

Problemet er at når jeg skriver noget i et felt og trykker + så resettes alle de data men har puttet ind.

Jeg bruger:
document.getElementById("mydiv").innerHTML += //En masse HTML Kode

Jeg har læst andre steder at man måske skal i gang med DOM (createElement osv.) men jeg har ingen id om hvordan jeg skal starte?

Håber der er nogen der er frisk på at hjælpe.

Aske

PS: Jeg har ingen idé om det virker i IE men det virker i hvert fald ikke i Safari eller Firefox...
Avatar billede roenving Novice
08. marts 2008 - 13:46 #1
Skriver ?-)

-- felterne beholder da de indstillinger man har valgt i min IE6, men mine andre browsere har den opførsel ...

-- og du har helt ret i, at du bør benytte DOM til at lave elementerne, for i rigtige browsere sætter du jo et helt nyt indhold med den teknik, men det er nok nærmere cloneNode(true), der er vejen frem !-)

Dvs. du opretter en linje med alle dine felter f.eks. i et skjult element, og så kloner du den, når du vil tilføje og evt. ændrer i feltnavne (hrm, det dur heller ikke ordentligt i IE) samtidig med at du ændrer linje-teksten !o]
Avatar billede roenving Novice
08. marts 2008 - 13:51 #2
PS. Du kan f.eks. kigge i http://exp.dk/spm/672130, hvor noget af teknikken er beskrevet med et eksempel !-)
Avatar billede olebole Juniormester
08. marts 2008 - 14:38 #3
<ole>

Nej, desværre kan man ikke bruge cloneNode til form elementer. IE kan ikke håndtere name attributten, så man er nødt til at oprette elementerne på denne måde (og kun i IE):
    var oInput = document.createElement("<input type='text' name='foo'>");

/mvh
</bole>
Avatar billede roenving Novice
08. marts 2008 - 14:49 #4
-- men man kan vel forsøge at leve med, at flere felter har samme navn, så de afhængig af serverside kode kan tilgås som arrays e.l. !-)
Avatar billede olebole Juniormester
08. marts 2008 - 16:30 #5
Ja, i mindre applikationer - men det bliver hurtigt ret uhensigtsmæssigt, når felterne ikke har sigende navne  :)

- og nej, Jes ... 'foo' er ikke et sigende navn, men ...  ;D
Avatar billede roenving Novice
08. marts 2008 - 16:43 #6
Who ?-)

Foo !-)
Avatar billede olebole Juniormester
08. marts 2008 - 17:25 #7
Oh, you ...!  :D
Avatar billede askeb Nybegynder
12. marts 2008 - 11:05 #8
hej igen. Ole du skriver det kun virker i IE. Er konklusionen så at det ikke kan fungere i både IE og andre browsere eller skal man gøre det på to forskellige måder afhængig af browser?
Avatar billede roenving Novice
12. marts 2008 - 14:13 #9
Jeps, i IE kan man ikke dynamisk sætte en name-attribut på et element, men skal ud i den tåbelige konstruktion, ole viser ...

-- det kan man derimodi de andre DOM-browsere, så, ja, man skal lave noget forskelligt for at få det til at virke ,-(

-- men som ole skriver, kan du i mindre applikationer arbejde med, at felterne har det samme navn (og de dermed ikke skal ændres !-), for det er helt tilladt, du skal så bare finde dem i collections, når formen sendes tilbage på serveren, altså et felt der hedder navn tilgås som navn(0), navn(1) osv.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester