Avatar billede mikmakmuk Nybegynder
19. maj 2008 - 16:12 Der er 13 kommentarer og
1 løsning

Ændre et felts type

Hvordan slipper jeg afsted med det her i IE

document.userform.password.type='text';
document.userform.password.type='password';
Avatar billede mikmakmuk Nybegynder
19. maj 2008 - 16:16 #1
kan man overhovedet gøre det?

Der er vist noget med at feltet er inmmutable
Avatar billede w13 Novice
19. maj 2008 - 16:56 #2
Det kan man desværre ikke af sikkerhedsårsager.
Avatar billede w13 Novice
19. maj 2008 - 16:56 #3
Så tror jeg, at du med JavaScript må slette feltet og oprette det igen under den nye type.
Avatar billede roenving Novice
19. maj 2008 - 17:19 #4
-- eller lægge et fake-felt, der viser den tekst, du først vil vise, og så skjuler det ved focus og overfører den til et andet felt, der vises i stedet for !-)

-- se f.eks. http://www.eksperten.dk/spm/540692 ...
Avatar billede mikmakmuk Nybegynder
19. maj 2008 - 18:43 #5
w13 --> Det lyder godt nok spændende. Hvordan gør jeg lige det?

Jeg vil jo rigtig gerne sige. Hvis det her sker så slet document.userform.password og opret document.userform.password.type='text' med en bestemt værdi
Avatar billede mikmakmuk Nybegynder
19. maj 2008 - 18:46 #6
Det drejer sig helt konkret om at jeg skal teste på om en cookie findes og hvis den ikke gør, så vis "Indtast password" i feltet. Feltet skal jo så bare ændre sig til et password felt når man begynder at taste
Avatar billede w13 Novice
20. maj 2008 - 10:34 #7
Hvordan ser dine kode ud til passwordfeltet? Dvs. både når det er text og når det er password.
Avatar billede w13 Novice
20. maj 2008 - 10:39 #8
F.eks.:
<script type="text/javascript">
function ChangePWField(o1,o2){
  o1.style.display="none";
  o1.setAttribute("name","");
  o2.style.display="inline";
  o2.setAttribute("name","feltnav");
}
</script>

<input id="passwordtext" type="text" value="Password">
<input style="display:none" id="passwordpassword" type="password">

<button onclick="ChangePWField(document.getElementById('passwordtext'),document.getElementById('passwordpassword'))">Passwordtype</button>

<button onclick="ChangePWField(document.getElementById('passwordpassword'),document.getElementById('passwordtext'))">Texttype</button>
Avatar billede w13 Novice
20. maj 2008 - 10:40 #9
o2.setAttribute("name","feltnav");
skulle have været:
  o2.setAttribute("name","feltnavn");

Og:
  <input id="passwordtext" type="text" value="Password">
skulle så starte med at være:
  <input id="passwordtext" type="text" name="feltnavn" value="Password">
Så må du rette de 2 steder, hvad "feltnavn" skal være i stedet.
Avatar billede mikmakmuk Nybegynder
20. maj 2008 - 12:38 #10
takker og bukker
Avatar billede w13 Novice
20. maj 2008 - 12:39 #11
;)
Avatar billede mikmakmuk Nybegynder
21. maj 2008 - 11:18 #12
hmmmm. Lige en lille ting til. Når jeg gør det sådan så mister jeg focus på feltet. Burde jeg ikke kunne løse det ved at sætte en onFocus="this.focus();" på passwordpassword.
Avatar billede w13 Novice
21. maj 2008 - 11:20 #13
Nej, onfocus="this.focus()" vil gøre, at feltet får focus, når det får focus. ;)

Ret:

<script type="text/javascript">
function ChangePWField(o1,o2){
  o1.style.display="none";
  o1.setAttribute("name","");
  o2.style.display="inline";
  o2.setAttribute("name","feltnav");
}
</script>

Til:

<script type="text/javascript">
function ChangePWField(o1,o2){
  o1.style.display="none";
  o1.setAttribute("name","");
  o2.style.display="inline";
  o2.setAttribute("name","feltnavn");
  o2.focus();
}
</script>
Avatar billede w13 Novice
21. maj 2008 - 11:21 #14
Ellers skulle det være noget i stil med:
onblur="this.focus()"
i stedet for:
onfocus="this.focus()"
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