Avatar billede johan.o Nybegynder
03. november 2005 - 10:04 Der er 10 kommentarer og
1 løsning

Forskellen på ID og NAME attributerne

Hvad er forskellen på brugen af disse attributter ?

F.eks. :

<form>...name ikke tilladt i strict.dtd, men har id fuldstændig samme betydning ?

<input>...name bruges ved form afsendelse til identifikation af feltet, men hvis name er udeladt og id istedet tilføjet, kan feltets værdi da findes på samme måde som med name ?

Jeg ved det er tidligt :) (for mig anyway), men hvis nogen kan forklare eller 'linke' til noget beskrivende læsestof takker jeg.

Mvh. Johan
Avatar billede olebole Juniormester
03. november 2005 - 10:32 #1
<ole>

Nej, en 'succesfull control' kan ikke findes på serveren uden name-attribut.

I det hele taget kan id- og name-attributter ikke på nogen måde erstatte hinanden ... kun i én browser, der har et ret sloppy forhold til mange detaljer i standarderne (og nej, denne gang tænker jeg ikke på FireFox ;)

/mvh
</bole>
Avatar billede johan.o Nybegynder
03. november 2005 - 10:45 #2
He he altid frisk for god bemærkning :)

Så name attribut i form felter er unikke og nødvendige.

Opstår der så konflikter på nogen måde hvis jeg f.eks. gør således :

<input type='text' id='felt' name='felt'> ?

Mvh. Johan
Avatar billede erikjacobsen Ekspert
03. november 2005 - 13:03 #3
Ingen konflikt. Du refererer id-navnet i Javascript og name-navnet (*g*) på serveren (og sommetid også i Javascript)
Avatar billede johan.o Nybegynder
03. november 2005 - 13:13 #4
Super, tak for det, det satte lige et par ting på plads.

Hvis nogen vil gøre 'krav' på point så smid et svar.

Mvh. Johan
Avatar billede olebole Juniormester
03. november 2005 - 13:14 #5
"Så name attribut i form felter er unikke og nødvendige."

Ja, de er nødvendige - men nej, de er ikke nødvendigvis unikke. F.eks. er det jo en nødvendighed at to sammenhørende radio's har samme navn ... ellers kan de ikke arbejde sammen  ;o)

I JS kan du altid kalde med enten:
    document.getElementById(FELT_ID)

- eller:
    document.getElementsByName(FELT_NAME)[INDEX]

- hvor 'INDEX' beskriver, hvilket af de elementer, der har det pågældende name ... regnet fra toppen af siden
Avatar billede olebole Juniormester
03. november 2005 - 13:17 #6
Hvis dine felter ligger i et bestemt element, kan du indsnævre søgningen yderligere - og dermed effektivisere koden:

  document.getElementById(ELEMENT_ID).getElementsByName(FELT_NAME)[INDEX]
Avatar billede erikjacobsen Ekspert
03. november 2005 - 13:17 #7
Og to forskellige <form> kan have felter med de samme navne.
Avatar billede olebole Juniormester
03. november 2005 - 13:23 #8
- og i modsætning til ham Erik Den Røde, er jeg jo et rendyrket point-kapitalist-svin  ;D
Avatar billede olebole Juniormester
03. november 2005 - 13:29 #9
Undskyld, undskyld, undskyld ... jeg fik skrevet noget vrøvl!  =8-O

'getElementsByName' kan _kun_ bruges på dokument-elementet:
    document.getElementsByName(FELT_NAME)[INDEX]

Derimod kan du bruge 'getElementsByTagName' på ethvert element ... men det er jo en helt anden sag - f.eks:

    document.getElementById(ELEMENT_ID).getElementsByTagName("input")[INDEX]
Avatar billede johan.o Nybegynder
03. november 2005 - 16:01 #10
Jamen tak for det, og værsgo olebole :)

Mvh. Johan
Avatar billede olebole Juniormester
03. november 2005 - 16:35 #11
Selvtak ... og tak for points  ;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