Avatar billede almaj Nybegynder
30. juni 2004 - 21:25 Der er 11 kommentarer og
1 løsning

brugen af ID er validere ikke min kode

Hejsa,
jeg har et problem ift. brugen af ID er. Jeg har nu læst mig frem til at et ID kun må være et sted på en side og det et problem for mig, da jeg har brug for at sjule en masse selectbokse ind i mellem. Da alle selectboksene kommer fra forskellige steder er det ikke muligt at bruge navnet (da stedet måske selv anvender dette til noget andet).

Den kode jeg bruger til at vise/skjule mine selects med er:
  sels = document.getElementsByTagName('SELECT');
  for(i=0;sels.length>i;i++){
  if(sels[i].id == 'tdg3')sels[i].style.visibility='hidden';
Avatar billede skovenborg Nybegynder
30. juni 2004 - 21:40 #1
du kan vel godt bruge den ovenstående kode med name i stedet for id. Du løber jo alligevel kun igennem alle selectboxene på siden.
Avatar billede roenving Novice
30. juni 2004 - 21:51 #2
Hent kun de select-boxe, som er inde i det (eller de !-) element(er) du har de obstruerende felter i !-)

  sels = document.getElementById('minDiv').getElementsByTagName('SELECT');
  for(i=0;sels.length>i;i++){
  if(sels[i].id == 'tdg3')sels[i].style.visibility='hidden';
Avatar billede almaj Nybegynder
30. juni 2004 - 22:31 #3
hmm name kan ikke bruges da jeg ikke ved hvor mange elementer der er, og da deres navne ikke altid er kendte. Hvis jeg skulle bruge name skal jeg jo ind og lave en lang liste af de navne som der anvendes - og det skal nok gå i fisk, når den skal opdateres og hvis nogen glemmer at fortælle at de ændre navn på en select.

Problemet er stort set det samme med elementløsningen..

Jeg ved godt at en side bør validere, men er der nogen der ikke vil få vist en side korrekt, hvis 2 elementer har det samme navn? (udseende & funktionalitet)?
Avatar billede almaj Nybegynder
30. juni 2004 - 22:32 #4
Jeg tænker på så at leve med at det er en fejl i valideringen
Avatar billede erikjacobsen Ekspert
30. juni 2004 - 22:40 #5
Hvis det du laver er noget, der skal bruges til noget i virkeligheden, ville
jeg ikke satse på at alle nuværende og fremtidige browsere vil acceptere din
lille "lovovertrædelse".

Jeg ville løse det ved at give ID-erne forskellige navne, men sådan at alle
samhørende ID-er starter med det samme: tdg3_1, tdg3_nogetandet, tdg3_thailand.

Så skal din if bare teste lidt anderledes.
Avatar billede skovenborg Nybegynder
30. juni 2004 - 22:41 #6
du skal altså ikke have fat i alle selectboxene? Men er der ikke nogen fælles træk i navnet for de selectboxe du skal skjule?
Avatar billede skovenborg Nybegynder
30. juni 2004 - 22:47 #7
hvis du gør ligesom erik skriver så kunne du teste det på denne måde fx:
for(i=0;sels.length>i;i++){
  if(sels[i].id.indexOf('tdg3') != -1)sels[i].style.visibility='hidden';
eller
if(sels[i].id.indexOf('tdg3') == 0)sels[i].style.visibility='hidden';

eller for den sags skyld med navnet, hvis det fx starter med det samme:
if(sels[i].name.indexOf('tdg3') == 0)sels[i].style.visibility='hidden';
Avatar billede almaj Nybegynder
30. juni 2004 - 22:51 #8
hmm det der med at lade id'et starte med det samme og så teste på det havde jeg ikke tænkt på - det er nok klart den bedste løsning, så den napper jeg :-)

send nogen svar så sender jeg nogen points
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 08:21 #9
Ellers tak, jeg samler ikke på point.
Avatar billede almaj Nybegynder
01. juli 2004 - 09:22 #10
ok, men mange tak alligevel
Avatar billede skovenborg Nybegynder
01. juli 2004 - 09:31 #11
måske skulle roenving og jeg dele eller du må tage lidt selv - egentlig skulle erik vel have dem, hvis han samlede på de points ;-)
Avatar billede almaj Nybegynder
01. juli 2004 - 12:06 #12
hmm det har du ret i, men det står mig ikke lige klart hvordan man får den til det... såå
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