Avatar billede keysersoze Ekspert
22. november 2001 - 11:46 Der er 21 kommentarer og
1 løsning

onfocus

jeg definerer i javascript et felt som følger;

<SCRIPT TYPE=\"text/javascript\">
<!--

var n = navigator;
var ua = \' \' + n.userAgent;
var av = n.appVersion;
var an = n.appName;

if ( (an.indexOf(\"Netscape\") != -1) && (parseInt(av)==4) && (ua.indexOf(\'Win\')!= -1) ) 
{var srchsz=7;}

if ( (an.indexOf(\"Netscape\") != -1) && (parseInt(av)>=5) && (ua.indexOf(\'Win\')!= -1) )
{var srchsz=6;}

if ( ( (ua.indexOf(\"MSIE\") != -1) && (ua.indexOf(\'Win\')!= -1) ) || ( (ua.indexOf(\'Mac\')!= -3) ) )
{var srchsz=10;}

var felt2=\'<input name=\"password\" type=\"text\" SIZE=\'+srchsz+\' id=\"inputfelt\" tabindex=\"2\" onfocus=\"if(this.value==\\\'password\\\')this.value=\\\'\\\';\" value=\"password\" onblur=\"if(this.value==\\\'\\\')this.value=\\\'password\\\';\" onmouseover=\"if(this.value==\\\'password\\\')this.value=\\\'\\\';\" onmouseout=\"if(this.value==\\\'\\\')this.value=\\\'password\\\';\">\'

//-->
</script>

og jeg udskriver feltet senere med;

<script type=\"text/javascript\">
<!--
document.write(felt2)
//-->
</script>

problemet er bare, at man i dette felt skal kunne skrive ens password hvilket skal ske ved at der indtastes stjerner (altså et passwordfelt), men for at man skal kunne se (som nu) at der STÅR password i feltet indtil man klikker på det er det jo et textfelt

jeg kan så vidt jeg har fundet frem til ikke skifte felt-type ved onfocus, og jeg har også prøvet med noget visibility=hidden/vissible - men uden held

nogle idéer?
Avatar billede nute Nybegynder
22. november 2001 - 11:49 #1
sett type=\"password\" ikke text

/nute
Avatar billede nute Nybegynder
22. november 2001 - 11:54 #2
ehhh....du vil dynamisk endre typen fra text til password ??? det kan du ikke...
Avatar billede keysersoze Ekspert
22. november 2001 - 11:54 #3
ja, men det er jo netop det der er problemet - for så kan jeg jo ikke se at der står \"password\" i feltet, når det ikke er i focus...
Avatar billede keysersoze Ekspert
22. november 2001 - 11:59 #4
det er også det jeg skriver jeg har fundet ud af man ikke kan... men kan man ikke på en måde lave en \"var felt2=\'<input type=\"password\"....> som der bliver skiftet ud med \"felt\" den dette kommer i focus....
Avatar billede nute Nybegynder
22. november 2001 - 12:10 #5
den enkleste metode, er å lage et hidden field som du overfører ditt password til. deretter replacer du bare alle tegn i ditt textfelt med *.

alternativt skal du prøve å legge ditt felt inn i et layer som du skriver et password felt til ved onfocus

enkel metode:

<SCRIPT TYPE=\"text/javascript\">
<!--

var n = navigator;
var ua = \' \' + n.userAgent;
var av = n.appVersion;
var an = n.appName;

if ( (an.indexOf(\"Netscape\") != -1) && (parseInt(av)==4) && (ua.indexOf(\'Win\')!= -1) ) 
{var srchsz=7;}

if ( (an.indexOf(\"Netscape\") != -1) && (parseInt(av)>=5) && (ua.indexOf(\'Win\')!= -1) )
{var srchsz=6;}

if ( ( (ua.indexOf(\"MSIE\") != -1) && (ua.indexOf(\'Win\')!= -1) ) || ( (ua.indexOf(\'Mac\')!= -3) ) )
{var srchsz=10;}

function swapPass(elem){
  var str, val;
    str=\"\";
    val=elem.value;
    elem.value=\"\";
  document.frm.password.value = val;
    for( i=0;i<val.length;i++){
      str+=\"*\";
    }
    elem.value=str;
}

var felt2=\'<input name=\"passBuffer\" type=\"text\" SIZE=\'+srchsz+\' id=\"inputfelt\" tabindex=\"2\" onkeypress=\\\'swapPass(this);\\\' onkeyup=\\\'swapPass(this);\\\' onclick=\"if(this.value==\\\'password\\\')this.value=\\\'\\\';\" value=\"password\" onblur=\"if(this.value==\\\'\\\')this.value=\\\'password\\\';\">\'
var felt3=\'<input name=\"password\" type=\"hidden\">\';

//-->
</script>

og jeg udskriver feltet senere med;
<form name=\"frm\">
<script type=\"text/javascript\">
<!--
document.write(felt2 + felt3)
//-->
</script>
<a href=\"java script:void( alert( document.frm.password.value ) );\">Klikk</a>
</form>
Avatar billede nute Nybegynder
22. november 2001 - 12:12 #6
hov hov hov....det gikk *fullstendig* galt :-| det skal nok endel mer kode til for å få det til å fungere...
Avatar billede olebole Juniormester
22. november 2001 - 12:22 #7
<ole>
Et tekst-felt med style=\"display:block\" og et password-felt med style=\"display:none\" skrevet under hinanden.
Så skifter du deres display på onfocus af tekst-feltet  ;o)
/mvh
</bole>
Avatar billede keysersoze Ekspert
22. november 2001 - 12:24 #8
jeg har arbejdet en del med at få denne til at virke;

document.login.password.visibility=\'hidden\';document.login.password2.visibility=\'vissible\';

på en eller anden måde, men det er ikke helt lykkedes :o/
Avatar billede nikolajdu Nybegynder
22. november 2001 - 12:28 #9
document.login.password.style.visibility=\'hidden\'
Avatar billede olebole Juniormester
22. november 2001 - 12:29 #10
<input type=\"text\" value=\"Skriv dit password her\" style=\"display:block\"
    onclick=\"document.getElementById(\'pswrd\').style.display=\'block\';document.getElementById(\'pswrd\').focus();this.style.display=\'none\';\">
<input type=\"password\" id=\"pswrd\" name=\"pswrd\" style=\"display:none\">

/mvh
Avatar billede olebole Juniormester
22. november 2001 - 12:30 #11
...iøvrigt staves \'visible\' med ét \'s\'  ;o)
Avatar billede nute Nybegynder
22. november 2001 - 12:33 #12
olebole >> tja...så kommer vi i trøbbel med NS4.x :-|
Avatar billede olebole Juniormester
22. november 2001 - 12:36 #13
Ja - og jeg må erkende, at jeg nu efterhånden kun tager hensyn til NS4.X, når det bliver udtrykkelig specificeret.
Dette gælder ikke IE4.X, da den jo desværre blev leveret sammen med Win98 og derfor tager rigtig lang tid at udrydde  ;o)
/mvh
Avatar billede olebole Juniormester
22. november 2001 - 12:38 #14
...men jeg kan godt se, han selv tager hensyn til NS4 - nu, jeg kikker efter  ;o)
Avatar billede keysersoze Ekspert
22. november 2001 - 12:38 #15
ok - nu går der lidt for meget javascript i det... :o/

hvis det skal passes sammen med det oprindelige, hvordan vil det så komme til at se ud?
Avatar billede olebole Juniormester
22. november 2001 - 12:39 #16
keysersoze >> Prøv det, jeg skrev - så kan du selv se det. Du behøver vist ikke så meget andet  ;o)
Avatar billede keysersoze Ekspert
22. november 2001 - 12:49 #17
kooooo0000000ooooooool - ret kult...

men så en enkel ting; grunden til at jeg definerer mine felter i javascript er så jeg kan tilpasse bredden på felterne i både NS og EI - hvordan får jeg så denne option med ind i det?
Avatar billede olebole Juniormester
22. november 2001 - 12:58 #18
Det fungerer - som nute ganske rigtig anførte - *ikke* i NS4.X!

Generelt er fremgangsmåden følgende:
Du sætter \'size\' i et felt til den rette værdi i NS4. Derefter sætter du style=\"width:160px\" i feltet - og ændrer de 160px til feltet har samme bredde i IE, som i NS4. Så passer tingene  :)
/mvh
Avatar billede keysersoze Ekspert
22. november 2001 - 13:23 #19
ok - nu har jeg leget lidt med den, og den er ret kult.... eneste problem er at det jo ikke virker i NS 4.7 - der får jeg to felter efter hinanden :o/

kan det løses?

Avatar billede olebole Juniormester
22. november 2001 - 13:27 #20
Ikke med denne metode  :(

Så bliver det noget med at have et absolut positioneret <div>, hvori du skriver dine felter dynamisk. Så har du balladen med at placere dit div  :o)
/mvh
Avatar billede keysersoze Ekspert
22. november 2001 - 13:34 #21
ok - jeg finder ud af et eller andet...

melder lige tilbage senere :)
Avatar billede keysersoze Ekspert
26. november 2001 - 20:50 #22
erhm... kan man så på en eller anden måde - evt hvordan - gå ind og tjecke hvilken browser der bruges? sådan så hvis det er IE vises denne version, men er det NS 4.7 vises en anden form for felt?
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