Avatar billede mcole Nybegynder
24. juli 2007 - 12:10 Der er 6 kommentarer

Problem med adressering af formular felt

Jeg har et formularfelt:
<input type="hidden" name="delivery1.Navn" value="" />
Jeg vil fra JavaScript gerne indsætte en værdi, men dette virker ikke, grundet det 2-ledede navn:
document.myForm.delivery1.Navn.value = "ABC";
Hvorledes adresserer jeg feltet:
Avatar billede michael_stim Ekspert
24. juli 2007 - 12:13 #1
Et skud i tågen:
document.myForm.'delivery1.Navn'.value = "ABC";
Avatar billede Slettet bruger
24. juli 2007 - 12:14 #2
hvad med at give inputten en id, saa er det meget nemmere at få fat på den og manipulere den.
Avatar billede softspot Forsker
24. juli 2007 - 12:21 #3
eller

document.myForm.elements['delivery1.Navn'].value = "ABC";

men i det hele taget synes jeg det er en dårlig idé at navngive felter på en måde som kan komme i konflikt med den generelle objekt reference model. Brug underscore (_) i stedet for punktum, altså delivery1_Navn.
Avatar billede olebole Juniormester
24. juli 2007 - 13:50 #4
<ole>

softspot >> Fejlen ligger faktisk i browserens implementering af JavaScript. I følge W3C er et punktum helt valid i name-attributen.
Det er skidt kodestil, ja ... men kun fordi, det er et buggy, inkonsistent miljø, vi koder til - ikke fordi, det strider mod reglerne  =)

/mvh
</bole>
Avatar billede softspot Forsker
24. juli 2007 - 17:10 #5
Jeg har kodet længe nok til Microsoft-produkter og i ditto teknologier til at være overordentlig mistænksom overfor alle notationer som bare afviger lidt fra de helt basale regler for navngivning af variable (dvs. man kun bruger bogstaver fra a-z, underscore og tal - og aldrig tal som det først tegn i et variabelnavn).

Der er udfordringer nok at kæmpe med når man udvikler systemer, så der er ikke nogen grund til selv at opfinde flere problemer end allerhøjst nødvendigt... :)
Avatar billede olebole Juniormester
25. juli 2007 - 13:06 #6
softspot >> Nu taler du om noget komplet andet. Du må endelig ikke sammenligne variabel-navne med element-identifiers - det er to meget forskellige ting  =)

Det er såmænd kun, når man skriver tussegammel kode fra forrige årtusinde, der kan opstå problemer. Holder man sig til tidsvarende, standardiseret kode, giver det ikke problemer. Adresseringer på formerne:
    document.myForm.delivery1.Navn
- og:
    document.myForm.elements['delivery1.Navn']

- er fra før 1999. Bruger du derimod DOM til at tilgå elementer med, er der ingen problemer.

Nu er du jo ASP'er, men havde du i stedet skrevet PHP ville du med garanti ofte have anvendt f.eks:
    <input name="bla[]" type="checkbox">

- som millioner af andre PHP'ere ... og helt uden problemer ... MS eller ej  ;o)
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