Avatar billede parazite Nybegynder
25. januar 2001 - 21:36 Der er 8 kommentarer og
2 løsninger

onblur=\"if(this.type==\'password\')this.type=\'text\';\" eller noget... :o)

Jeg arbejder på en side, hvor brugere skal logge ind for at få adgang til systemet. For at spare plads har jeg valgt at undlade at beskrive de to textfields med normal text, og i stedet indsætte value=\"Brugernavn\" i input-tagget. Når brugeren så klikker for at skrive bruger jeg  onfocus=\"if(this.value==\'Brugernavn\')this.value=\'\';\" til at slette texten og onblur=\"if(this.value==\'\')this.value=\'Brugernavn\';\" til at skrive texten igen, hvis de vælger at undlade at logge ind. Problemet kommer så når jeg laver feltet til indtastning af password. Da type=\"password\" vil min value=\"Kodeord\" jo blive skrevet med stjerner. Kan man ikke med JavaScript lave noget i stil med onFocus=\"if(this.type==\'text\')this.type=\'password\';\"? På den måde vil man kunne skrive value med synlig skrift og ikke bare stjerner, og man vil ikke kunne se brugerens password når han vælger at logge ind.

Håber I forstår hvad jeg mener! *LoL*


- Parazite
Avatar billede jakoba Nybegynder
25. januar 2001 - 21:50 #1
Hum. Hvad med 2 layers der skifter ved mouseover:
1)  \"Log ind\" der ligner et link, og ved mouseover bliver det så til
2)  et password felt der kan skrives i.
Avatar billede parazite Nybegynder
25. januar 2001 - 21:53 #2
Hmm... layers skal placeres afhængig af opløsning. Holder ikke.
Avatar billede hatecaps Nybegynder
25. januar 2001 - 22:30 #3
har du prøvet med document.formnavn.feltnavn.type ?

jeg mener at ha\' læst et eller andet sted at man ikke kan ændre properties dynamisk når man bruger this, men det kan også godt bare være noget jeg har drømt ;-)

ha\' det godt
hatecaps
Avatar billede parazite Nybegynder
25. januar 2001 - 22:39 #4
Et lille sidespørgsmål - hvordan faen får man 2 onfocus til at virke på et textfelt? Altså simpel sammenskrivning af onfocus=\"if(this.value==\'Brugernavn\')this.value=\'\';\" og onfocus=\"if(document.login.password.type==\'text\')document.login.password.type=\'password\';\". :o)
Avatar billede diktator Nybegynder
25. januar 2001 - 22:43 #5
Er det ikke bare at adskille med semikolon? uden \"\"
Avatar billede parazite Nybegynder
25. januar 2001 - 23:20 #6
OK - jeg giver op. En eller anden... lav noget magi!

            <form name=\"login\">
            <font size=\"1px\"><br></font>
            &nbsp;<input type=\"text\" name=\"user\" size=\"9\" value=\"Brugernavn\" class=\"textfield\" style=\"width: 126px;\" onfocus=\"if(this.value==\'Brugernavn\')this.value=\'\';\" onblur=\"if(this.value==\'\')this.value=\'Brugernavn\';\">
            <br><br>
            &nbsp;<input type=\"text\" name=\"password\" size=\"9\" value=\"Kodeord\" class=\"textfield\" style=\"width: 126px;\" onfocus=\"if(this.value==\'Brugernavn\')this.value=\'\';if(document.login.password.type==\'text\')document.login.password.type=\'password\';\">
            <br>
            <p align=\"left\">
            &nbsp;<input type=\"submit\" value=\"Login\" name=\"login\" style=\"background-color: #FFFFFF; color: #003366; font-family: Verdana ; font-size: 10 px; font-weight: normal\">
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"submit\" value=\"Opret\" name=\"login\" style=\"background-color: #FFFFFF; color: #003366; font-family: Verdana; font-size: 10 px; font-weight: normal\">
            </form>

Dette var hvad jeg nåede frem til, men... damn.
Det skal naturlivis også virke på onblur, og hvis texten i password-feltet ikke er kodeord, så skal den ikke skifte til text igen, men beholde type=\"password\", da brugeren jo nok har skrevet sit password... hjææææælp!

Nu er der 100 point på.
Avatar billede jakoba Nybegynder
26. januar 2001 - 07:40 #7
Mer Hum.  Skal feltet absolut skifte type.

var  hansEntry = \"\";
var  curLength = 0;

function funcOnChange ( tx ) {
  if ( tx.value.length > curLength ) {    // nyt bogstav indtastet
    hansEntry += tx.value.substring(curLength);
    var oldLength = curLength;
    curLength = tx.value.length;
    tx.value = tx.value.substring(0,oldLength)+\"********\";
    tx.value = tx.value.substring(0,curLength);
  } else
  if ( curLength > tx.value.length ) {    // bogstav slettet
    hansEntry = hansEntry.substring(0,tx.value.length);
    curLength = tx.value.length;
  } else {
    // men hvad hvis han prøver med cut&paste? Du skal have nogen veldresserede
    // brugere eller også teste på hvilke tegn i tx.value der ikke er *-er og
    // skrive en hel del script.
    // allenfals sku idden være klar.
  };
}; //end funcOnChange ( textfield )
Avatar billede jakoba Nybegynder
26. januar 2001 - 13:39 #8
Supernem men folk kan kikke over skulderen:

<script language=\'javascript\'>

var rightPassword = \"parazite\";  // det rigtige
var enteredPassword = \"\";         

function checkMeIn () {
  enteredPassword = prompt(\"Hvad er dit password?\",\"\");
  if ( enteredPassword == rightPassword ) {
      // hvad der nu skal ske når det er \"en af vores\".
      return true;
  } else {
      // nixen bixen;
      return false;
  }
}; //end checkMeIn()

</script>

<a href=\"java script:void(checkMeIn());\">Check In please</a>

Du har nok selv en bedre og \"sikrere\" måde at checke password.

mvh JakobA
Avatar billede jakoba Nybegynder
29. januar 2001 - 22:33 #9
Hatecaps har ret.  formfelt.TYPE er readonly og kan ikke ændres.
fra http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm
Avatar billede parazite Nybegynder
13. februar 2001 - 00:35 #10
Oh well - 50 til jakoba for et godt forslag, som jeg måske kan få til at vitke. :o)
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