Avatar billede steen_hansen Forsker
06. december 2017 - 12:37 Der er 4 kommentarer og
1 løsning

Fokus på <input type="text" placeholder="Dine initialer">

Jeg har en lille loginformular på en side, hvor jeg synes det er smart at kunne benytte placeholder, så man placerer "Dit brugernavn", "Adgangskode" mm inde i sit textfelt:

For at siden skal være så nem at gå til, har jeg altid sat fokus på det første relevante textfelt ved at benytte dette (lidt forenklet HTML):

<body onload="document.frmLogin.username.focus();">
    <form name="frmLogin">
        Brugernavn:<br>
        <input type="text" name="username">
    </form>
</body>

Men det virker ikke ved placeholder. Hvis jeg fjerner Brugernavn:<br> og sætter placeholder ind:

<body onload="document.frmLogin.username.focus();">
    <form name="frmLogin">
        <input type="text" name="username" placeholder="Dit brugernavn">
    </form>
</body>

- så er cursor ganske korrekt placeret i 'username'. Men der står ikke "Dit brugernavn", tekstfeltet er tomt.

Den eneste måde man kan bibeholde teksten "Dit brugernavn" inde i tekstboksen, er ved at fjerne fokus fra feltet. Men så ryger det behagelige og nemme sig en tur. Så skal man aktivt flytte musen op i tekstfeltet.

Kan det lade sig gøre at sætte fokus på tekstfeltet, og samtidig bibeholde "Dit brugernavn" inde i tekstfeltet, når siden loades? Det er først ved første tastetryk, at "Dit brugernavn" skal forsvinde.

Jeg håber problematikken er til at forstå. Ellers skal jeg nok uddybe.
Avatar billede steen_hansen Forsker
06. december 2017 - 12:49 #1
Jeg glemte tabindex. Oprindelig HTML:

<body onload="document.frmLogin.username.focus();">
    <form name="frmLogin">
        Brugernavn:<br>
        <input type="text" name="username" tabindex=1>
    </form>
</body>


"Den eneste måde man kan bibeholde teksten "Dit brugernavn" inde i tekstboksen, er ved at fjerne fokus fra feltet:"

<body>

<form name="frmLogin">
        <input type="text" name="username" placeholder="Dit brugernavn">
</form>

</body>
Avatar billede steen_hansen Forsker
06. december 2017 - 13:10 #2
Lige en opsummering:

OPRINDELG HTML MED FOKUS PÅ "username"
Meget forenklet HTML i dette eksempel, og det virker fint:

<body onload="document.frmLogin.username.focus();">

<form name="frmLogin">
    Brugernavn:<br>
    <input type="text" name="username" tabindex="1">
</form>

</body>




HTML MED PLLACEHOLDER, FOKUS PÅ "username"
Der er fokus på feltet, klar til indtastning. Men "Dit brugernavn" er forsvundet fra tekstfeltet:

<body onload="document.frmLogin.username.focus();">

<form name="frmLogin">
    <input type="text" name="username" placeholder="Dit brugernavn" tabindex="1">
</form>

</body>



ENESTE MÅDE AT BIBEHOLDE PLACEHOLDER PÅ "username" ER AT FJERNE FOKUS FRA FELTET
Men man skal aktivt trykke i feltet "username" med musen, før brugernavn kan indtastes. Og så ryger brugervenligheden sig en tur:

<body>

<form name="frmLogin">
    Brugernavn:<br>
    <input type="text" name="username" placeholder="Dit brugernavn">
</form>

</body>
Avatar billede steen_hansen Forsker
06. december 2017 - 13:27 #3
Målet er at bibeholde "Dit brugernavn" i placeholder, og samtidig have fokus på feltet "username", indtil første tastetryk. Ved første tastetryk skal "Dit brugernavn" forsvinde, og erstattes med den første karakter i dit brugernavn:

<body onload="document.frmLogin.username.focus();">

<form name="frmLogin">
    <input type="text" name="username" placeholder="Dit brugernavn" tabindex="1">
</form>

</body>
Avatar billede steen_hansen Forsker
06. december 2017 - 13:59 #4
Jeg fandt noget brugbart på https://paulund.co.uk/html5-placeholder

Remove Placeholder Text On Focus

When you used to manually create the placeholder effect using Javascript you will remove the text on the click event of the textbox. The placeholder text does not do this, when you click on the textbox the text will not be removed until you start typing.

Using CSS you can set the text to be transparent when the focus is on this textbox by using the CSS selector ::focus.

.placeholder-fix:focus::-webkit-input-placeholder  { color:transparent; }
.placeholder-fix:focus::-moz-placeholder  { color:transparent; }
Avatar billede steen_hansen Forsker
06. december 2017 - 14:04 #5
Det virker så ikke i MSIE v11 :( Opretter et nyt spørgsmål
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

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