Avatar billede hanshenp Nybegynder
05. september 2003 - 00:33 Der er 19 kommentarer og
1 løsning

Ændre <input type fra text til password

Jeg sidder med et login system, kodet i PHP... Og præver nu at få det til at være lidt smart med javascript :-)

Jeg har 2 felter i min login form: Username og Password.
I hvert felt står der henholdsvis User og Pass, når siden bliver loaded.

Jeg vil så gerne have det lavet, så feltet hvori der står pass bliver ændret fra typen text, til typen password onfocus, nedenunder er et lille forsøg jeg har kørt.

<input type="text" name="user" value="User" onfocus="if(this.value=='User')this.value=''" onblur="if(this.value=='')this.value=this.defaultValue">
<input type="text" name="pass" value="Pass" onfocus="this.type='password'" onblur="if(this.value=='')this.type='text'; this.value=='Pass'">

På forhånd tak
Avatar billede gertp Nybegynder
05. september 2003 - 00:36 #1
input type="password"
Avatar billede bearhugx Nybegynder
05. september 2003 - 00:38 #2
værså god :-)

<html>
    <body>
        <form>
            <input type="text" id="field">
            <input type="button" onclick="document.getElementById('field').type='password';">
        </form>
    </body>
</html>
Avatar billede hanshenp Nybegynder
05. september 2003 - 00:40 #3
så går jeg glip af ideen med at der står Pass, når siden loades... Jeg er kommet frem til at det ikke kan lade sig gøre at ændre Type på et <input>, da type er readonly.

Jeg havde forestillet mig noget med at feltet bliver slettet og et nyt sat ind, når man klikker på den... jeg ved bare ikke om det er muligt
Avatar billede bearhugx Nybegynder
05. september 2003 - 00:45 #4
hanshemp --- har du prøvet at køre mit lille eksempel ?.. det er skam meget muligt at ændre type...

og hvad angår at det skal stå pass når siden loades :
        <form>
            <input type="text" id="field" onfocus="if(this.value='PASSWORD') this.value=''; this.type='password';" value="PASSWORD">
        </form>
Avatar billede hanshenp Nybegynder
05. september 2003 - 00:47 #5
jeg copy pastede dit script, direkte... og der virkede det ikke prøver lige det nye
Avatar billede hanshenp Nybegynder
05. september 2003 - 00:49 #6
Det nye virker heller ikke, jeg daffer under dynen nu... vender tilbage til det i morgen
Avatar billede bearhugx Nybegynder
05. september 2003 - 00:49 #7
hvad browser bruger du ?
Avatar billede miss-g Seniormester
05. september 2003 - 01:14 #8
<input type="text" name="user" value="User" onfocus="if(this.value=='User')this.value=''" onblur="if(this.value=='')this.value=this.defaultValue">
  <input type="password" name="pass" value="Pass" onfocus="this.type='password'" onblur="if(this.value=='')this.type='text'; this.value=='Pass'">

Satte din kode ind i Dreamweaver - ændrede tekstboxen til et password field og fik ovenstående kode....
Avatar billede bearhugx Nybegynder
05. september 2003 - 01:19 #9
miss-g >> så langt så godt .. men problemet er jo så bare at der fra starten står "****" i password-feltet ... såvidt jeg har forstået det, så skal der stå "PASS" (med læsbar tekst) indtil feltet får fokus.. Derefter skal det laves om til et password-felt, så man ikke kan se, hvad der bliver indtastet....
Avatar billede =maddog= Nybegynder
05. september 2003 - 02:03 #10
ifølge DOM må man ikke ændre attributes ved direkte allokering (et objekt-orienteret problem)
_input.setAttribute("type", "password");
er måden, hvor _input er en reference til det pågældende input element.
Avatar billede bearhugx Nybegynder
05. september 2003 - 02:06 #11
=maddog= ... Interessant... Har du noget læsestof omkring dette oo-problem og "direkte allokering" ????
Avatar billede bearhugx Nybegynder
05. september 2003 - 02:11 #12
hmm ...

mozilla sluger både
  <input type="text" id="field" onfocus="this.setAttribute('type', 'password');" value="PASSWORD">

og

  <input type="text" id="field" onfocus="this.type='password';" value="PASSWORD">

råt...

IE 6.0 gør ingen af delene... :-/
Avatar billede =maddog= Nybegynder
05. september 2003 - 02:18 #13
Jemen, det er jo ikke det vilde trip. I JavaScript 1.5 har alle HTML elementer (i form af et JavaScript objekt) en JavaScript konstruktor (der kan nedarves gennem prototypen). Såfremt man ikke specifikt overskriver en funktion i en sådan nedarving bør man tildele en attribute med den til HTMLElement tilknýttede funktion setAttribute.
http://www.zvon.org/xxl/DOM1reference/Output/refs/method_setAttribute_Element.html
Avatar billede =maddog= Nybegynder
05. september 2003 - 02:19 #14
Ikke HTMLElement, blot Element. Det skulle virke for XML med korrekt DOM struktur også.
Avatar billede socle Nybegynder
05. september 2003 - 02:37 #15
jeg har også rodet med det på et tidspunkt, og så vidt jeg husker kan man godt gøre som bearhugx 05/09-2003 00:45:00; altså ændre en text input til en password input, men ikke tilbage igen
Avatar billede roenving Novice
05. september 2003 - 02:48 #16
Ikke gennemtestet, men den ligner det rigtige:

<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 hanshenp Nybegynder
05. september 2003 - 20:22 #17
roenving du er helt rigtig på den der...

Det skal lige siges, at de 2 felter står vandret ved siden af hinanden, og password feltet står nu et par pixels højere end user feltet
Avatar billede hanshenp Nybegynder
05. september 2003 - 20:40 #18
style="display:block;"

Skal også bare med i User feltet, så virker det... Du fortjener i sandhed dine point roenving... hvis du ville svare

Alle andre indlæg skal også have tak for deres tid
Avatar billede roenving Novice
06. september 2003 - 02:38 #19
Velbekomme '-)

-- og tak for inputtet om username-feltet, den må jeg straks ha' med i mit bibliotek !-)
Avatar billede roenving Novice
13. september 2003 - 00:11 #20
-- og tak for points ;~}
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