Avatar billede minau Nybegynder
15. april 2004 - 10:37 Der er 15 kommentarer og
1 løsning

Eval problem - eller form name?

hellow.

Jeg har en masse <input> - faktisk 24×31. felterne har fået navnet name="0:0" name="0:4" name="21:15" osv.

når siden loader ville jeg gerne initialicere en farve for samtlige felter.. JEg har prøvet


function initfarver(){
    for(x=0;x<=31;x++){
        for(y=0;y<=24;y++){    
            eval(  "farver(form."  + x +  ":" + y + ")" );
            //document.write( "farver(form."  + x +  ":" + y + ")" );
        }
    }
}

selfølgelig med onload="initfarver()"

men det viker ik

jeg har på fornemmelsen at den simpelthen ikke kan finde form.0:12 - altså at der er noget galt med den måde jeg angiver navnet på :-(

please help
Avatar billede minau Nybegynder
15. april 2004 - 10:42 #1
(sig lige hvis det er totalt sort)
Avatar billede mm12010 Nybegynder
15. april 2004 - 10:44 #2
det er totalt sort ;-)
Avatar billede mm12010 Nybegynder
15. april 2004 - 10:45 #3
hvad skal disse linier udføre?

            eval(  "farver(form."  + x +  ":" + y + ")" );
            //document.write( "farver(form."  + x +  ":" + y + ")" );
Avatar billede mm12010 Nybegynder
15. april 2004 - 10:45 #4
har du mere kode?
Avatar billede fennec Nybegynder
15. april 2004 - 10:56 #5
er det noget i denne stil du søger???

function initfarver(){
    for(x=0;x<=31;x++){
        for(y=0;y<=24;y++){
            document.getElementById(x+":"+y).style.backgroundColor = 'red';
        }
    }
}
Avatar billede minau Nybegynder
15. april 2004 - 11:35 #6
Fennec - yes - det var lige det - smid svar

(min ferver() tilskriver den rigtige farve - så endte med
farver(document.getElementById(x+":"+y))
)
Avatar billede fennec Nybegynder
15. april 2004 - 11:40 #7
er smidt her...
Avatar billede olebole Juniormester
15. april 2004 - 23:27 #8
<ole>

Nu vrøvles der vist  :)
Du skriver i spørgsmålet, at du har givet input-felsterne f.eks. name="21:15". Så kan du ikke kalde elementet med 'document.getElementById'.
Hvis du i mellemtiden har givet dine felter id="21:30", er du ude i noget snavs, da et id ikke må begynde med et tal.

Derimod kan du (hvis du bruger 'name') kalde med document.getElementByName("21:30") - eller: document.FORMNAVN.elements["21:30"]

/mvh
</bole>
Avatar billede roenving Novice
16. april 2004 - 03:24 #9
-- og da en javascript-identifikator heller ikke må starte med et tal, har du en potentiel fejl-kilde, så det kan da anbefales, at du finder et andet navngivningsskema, f.eks. t21d31 ...
Avatar billede olebole Juniormester
16. april 2004 - 11:59 #10
Det er vist ikke helt rigtigt, roenving. Et id må i princippet gerne begyndes med et tal - og det mener jeg da også JavaScript understøtter idag  ;o)
Avatar billede olebole Juniormester
16. april 2004 - 21:05 #11
Undskyld .... hvad fik jeg dog skrevet ...!?!!???!!!  =8-O
En name-attribut er defineret som CDATA - og må derfor gerne begynde med et tal  :)
Avatar billede roenving Novice
16. april 2004 - 21:20 #12
>>hrm

-- jeg skrev en javascript-identifikator ...

-- og for en id er der et tegn mere end der er for javascript-identifikatorer, nemlig - (bindestreg, hyphen), som er lovlig i en id, men ikke lovlig i en js-identifikator ...

-- for begge typer gælder dog, at de _ikke_ må starte med et tal, hvorimod en name-attribut hjertensgerne må starte på et tal !-)

-- problemet opstår bare så, når man gerne vil tilgå et form-element eller et indlejret window-objekt på 'god' gammeldags vis, for så kommer name attributten lige pludselig i brug som javascript-identifikator, og så må der ikke være et tal som første karakter !o]

Eks.
parent.FRAMENAME eller document.FORMNAME.FIELDNAME ...
Avatar billede olebole Juniormester
16. april 2004 - 21:30 #13
Ehhhhh ...... så må du lige pege på dokumentationen - det kan da vist ikke passe, JS skulle være inkompatibel med HTML, DOM og ECMA(?)
Avatar billede olebole Juniormester
16. april 2004 - 21:39 #14
Det var S..... - sådan er det altså ...!?!!!
  http://devedge.netscape.com/library/manuals/2000/javascript/1.5/guide/ident.html

"A JavaScript identifier must start with a letter, underscore (_), or dollar sign ($); subsequent characters can also be digits (0-9). Because JavaScript is case sensitive, letters include the characters "A" through "Z" (uppercase) and the characters "a" through "z" (lowercase)."

Det var dog skoddet  :o(
Avatar billede minau Nybegynder
17. april 2004 - 18:48 #16
Sikke en heftig diskution :-)

document.getElementById("0:0") virker i hvert fald - så det er jo dejligt
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging