13. marts 2004 - 13:14Der er
9 kommentarer og 1 løsning
Cast string to object
Hej
Jeg har en funktion i js der tager imod en parameter, som den behandler som et objekt. Problemet er at når jeg overføre parameteren til funktionen, er parameteren en streng og det giver fejl.
f.eks.
... onclick="FunktionNavn('IdPaaTekstBoks');" ...
function FunktionNavn(MinStreng) { //Her går det galt MinStreng.value = 'Et eller andet'; }
Er der en metode i js hvor jeg kan caste MinStreng til et objekt ???
Når du kalder funktionen med en streng som parameter, opfatter funktionen det jo som netop en streng og ikke som en pegepind til et objekt.
Hvis navnet på dit objekt er "IdPaaTekstBoks", skal du kalde funktionen med kaldet ... onclick="FunktionNavn(IdPaaTekstBoks);" ... Altså uden citationstegn om navnet.
helle_fred >> Tak for dit forslag. Jeg skulle nok have uddybet min problem stilling en smule. Jeg er klar over at når man kalder en js funktion via html skal en kontrol altid sendes med uden citationstegn.
I mit tilfælde kalder jeg FunktionNavn fra en anden js funktion.
F.eks.
function Funktion1() { var MinKontrol = 'IdPaaTekstBoks'; Funktion2(MinKontrol); }
function Funktion2(MinKontrol) { //FEJL MinKontrol.value = 'Et eller andet'; }
Skal man ikke angive MinKontrol som "new Object" ?
Måske virker det her: var MinKontrol = eval('IdPaaTekstBoks');
Det ved vel ikke hvilke parametere, objektet "MinKontrol" har.. noget felter har en .style, .text, .value, osv.. den skal vel først vide hvad slags objekt der er tale om..
thesurfer >> Har forsøgt med eval og får en fejl tilbage der siger "Object is undefined". Så det kunne skyldes at den ikke ved hvilke metoder der tilknyttet kontrollen.
roenving >> He he - har selv forsøgt med document.getElementById og fik det til at virke, men min løsning er ikke nær så elegant som din. Tusind tak for hjælpen :-) Gider du at poste et svar, så du kan få dine point?
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.