Avatar billede dugi Nybegynder
18. november 2005 - 19:35 Der er 10 kommentarer

'Work-around' til IE

Godaften Eksperter,

Jeg har fået lavet et script, som virker perfekt og fuldstændig, efter hensigten til Firefox, men af en eller anden årsag, virker det ikke i IE - derfor ville jeg høre, om nogle af jer havde et "work-around" så det ville virke i IE?

Mit script, som virker i Firefox er følgende:

function show(id, txt, pass)

  if (document.getElementById(id).value == txt)
  {
      if (pass == 1)
    {
      document.getElementById(id).type = 'Password';
    }
   
    document.getElementById(id).value = '';
  }
  else if (document.getElementById(id).value == '')
  {
      if (pass == 1)
    {
      document.getElementById(id).type = 'Text';
    }
   
    document.getElementById(id).value = txt;
  }
}


Fejlen i IE, er at IE ikke kan genkende ".type", men altså Firefox kender den, så forstår ikke helt hvorfor IE, ikke gør!
Men ".type" er der problemet ligger :)

Håber nogle kan hjælpe!
- På forhånd tak :)

Med venlig hilsen
Morten
Avatar billede olebole Juniormester
18. november 2005 - 20:09 #1
<ole>

Desværre stinker FF's, Opera's og IE's DOM-håndtering alle big-time! Her har du ramt lige ned i IE's problemer: Formfelter.

Hvordan det er smartest at løse det aktuelle problem, afhænger af markup-koden og hvordan det præcist skal bruges ... jeg er dog godt klar over, at du gerne vil kunne ændre elementets 'type'  :)

/mvh
</bole>
Avatar billede dugi Nybegynder
18. november 2005 - 20:18 #2
Har overvejet lidt at have to felter - et med pass, og et med text også bare ændre "display" ? Er det optimalt?

Syntes bare det er trist, men man kan ikke ændre type i IE, på en anden måde end ".type"?
Avatar billede olebole Juniormester
18. november 2005 - 20:33 #3
Jeg er ikke helt sikker på hvad det er af:
"Hvordan det er smartest at løse det aktuelle problem, afhænger af markup-koden og hvordan det præcist skal bruges"
- du ikke forstår  :)
Avatar billede dugi Nybegynder
18. november 2005 - 20:36 #4
ah okay :)
Det skal bruges til et login system

Der starter med at stå "Brugernavn", klikker man på Brugernavn, forsvinder det og man skriver, hvis så man fortryder og feltet er tomt, så kommer "Brugernavn" tilbage i feltet.

Det samme skal ske med "Kodeord", men der skal feltet - når man klikker i det for at s - skrive ændres til Password, så man skriver med "*******", og er feltet tomt skal det ændres tilbage til "text", og vise teksten "Kodeord" igen :)

Håber du forstår mig :P
Avatar billede olebole Juniormester
18. november 2005 - 22:09 #5
Du kan enten bruge to forskellige inputs, der vises og skjules - men så skal du holde styr på name- og/eller id-attributter.
En anden mulighed er at bruge DOM til at udskifte elementet med.

Løsningen afhænger som sagt (nogle gange, efterhånden!) af markup-koden
Avatar billede dugi Nybegynder
18. november 2005 - 22:28 #6
Kan du give et eksempel på en DOM udskiftning, kode mæssigt?
Avatar billede olebole Juniormester
18. november 2005 - 22:33 #7
Ja, men jeg gider ikke spilde tid på noget, du måske ikke kan bruge - blot fordi du ikke gider videregive de nødvendige informationer
Avatar billede dugi Nybegynder
18. november 2005 - 23:14 #8
Det vil jeg da gerne, troede bare du havde hvad du skulle bruge, en beskrivelse af hvad scriptet skal gøre, og selve scriptet? :)

Hvad skal du bruge, så skriver jeg det? :D!
Avatar billede olebole Juniormester
18. november 2005 - 23:32 #9
- sorry, men jeg har selv gang i et større projekt. Det her har jeg ikke tid til ... en anden må tage over
Avatar billede roenving Novice
21. november 2005 - 17:35 #10
F.eks.

<form name="minForm">
<input type="text" name="username" size=20 value="Brugernavn" onclick="if(this.value==this.defaultValue)this.value=''" onblur="if(this.value=='')this.value=this.defaultValue">
<input name="dapass" type="text" value="Adgangskode" onfocus="this.form.password.style.display='block';this.style.display='none';this.form.password.focus();this.form.password.select();" style="display:block;" size="20">
<input name="password" type="password" style="display:none;" onblur="this.style.display='none';this.form.dapass.style.display='block';" size="20">
<input type="submit" value="login" name="Button" >
</form>
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