Eksempeltekst i inputfields

Tags:    html form input

Hej
Jeg er igang med at lave et loginsystem, som allerede virker lige som det skal. Dog vil jeg gerne have noget eksempel tekst i felterne username og password, ligesom der er ved loginsystemet her på udvikleren.dk.
Lige nu ser min formular således ud:
Fold kodeboks ind/udHTML kode 

Lige nu skal brugeren selv slette det der allerede står i felterne, hvilket ikke er så smart. Jeg fandt noget på nettet omkring mit problem, hvor der blev foreslået at jeg skrev
Fold kodeboks ind/udHTML kode 

i mit input-field, men det gav desværre ikke noget resultat.
Hvad kan jeg gøre for at det kommer til at virke, som jeg godt kunne tænke mig?



42 svar postet i denne tråd vises herunder
10 indlæg har modtaget i alt 38 karma
Sorter efter stemmer Sorter efter dato
Brug placeholder..

altså:

<input type="text" placeholder"DIN TEKST HER" name="">




Har indsat placeholder istedet for value:
Fold kodeboks ind/udHTML kode 

Men det forsvinder ikke, hverken når jeg begynder at skrive noget, eller når jeg klikker i feltet



Hvis det er HTML5, så burde det virke på min pc, fordi jeg har IE9, Google Chrome 18 og Firefox 11, som alle skulle understøtte HTML5.
Men hvordan skal jeg lave det i javascript, hvis det skal virke?



Nu kan mine browsere jo bruge HTML5, så spørgsmålet er om jeg skal droppe HTML5 placeholder og så bruge udelukkende javascript?



Nu kan mine browsere jo bruge HTML5, så spørgsmålet er om jeg skal droppe HTML5 placeholder og så bruge udelukkende javascript?


nu er der vel andre end dig der skal besøge din hjemmeside?
jeg ville lave det med placeholder + fallback.



Den rigtige måde er som andre nævner at bruge HTML5 løsningen hvis den er der, og ellers loade et polyfill ind.

http://html5please.com/#input[placeholder]
http://caniuse.com/#search=placeholder
https://github.com/mathiasbynens/jquery-placeholder

Og til at tjekke om du skal loade et polyfill ind kan du bruge: http://yepnopejs.com/



Indlæg senest redigeret d. 18.04.2012 17:16 af Bruger #17015
Den rigtige måde er som andre nævner at bruge HTML5 løsningen hvis den er der, og ellers loade et polyfill ind.

http://html5please.com/#input[placeholder]
http://caniuse.com/#search=placeholder
https://github.com/mathiasbynens/jquery-placeholder

Og til at tjekke om du skal loade et polyfill ind kan du bruge: http://yepnopejs.com/

Hmn er det ikke bedre, at bruge modernizer til, at checke efter placeholder support, og så bruge den indbyggede loader i modernizer (som tilfældigvis er yepnope) til, at loade polyfilen :)?




@dan, det kommer an på om placeholder er det eneste du vil tjekke for. Hvis det er det, så er det nok lidt overkill at loade modernizr ind :-) Der er en grund til at de gjorde yepnope til et selvstændigt modul :-)



Du har ret igen :-)

Så mit bud, på vores fælles bud, ser cirka sådan her ud:
Fold kodeboks ind/udJScript kode 


Men...

Det tager jo tid at loade det asynkront og et placeholder polyfill, burde ikke fylde ret meget. Desuden er det jo vigtigt, at placeholder værdier vises med det samme, hvis man bruger dem som labels for sine felter, så de er der, selv hvis man har en bruger der med det samme går i gang med at bruge felterne. Derfor burde jo lave det inline, så superbrugerne ikke skal vente på at det bliver hentet efter page load. Desuden bør det jo ikke afhænge af jQuery - det er jo et stort library, og det er et simpelt problem vi har.

Fold kodeboks ind/udJScript kode 


Så skal det jo bare minifies... :p

Test på jsFiddle: http://jsfiddle.net/REqUH/


Har testet din kode, men det virker ikke på mit site. Dog virker det upåklageligt på jsFiddle, som du linker til.
Min kode ser således ud:
Fold kodeboks ind/udHTML kode 

Det virker på jsFiddle når jeg indsætter mine input-fields, men så burde det jo også virke på mit site eller hvordan?



Du har ret igen :-)

Så mit bud, på vores fælles bud, ser cirka sådan her ud:
Fold kodeboks ind/udJScript kode 


Men...

Det tager jo tid at loade det asynkront og et placeholder polyfill, burde ikke fylde ret meget. Desuden er det jo vigtigt, at placeholder værdier vises med det samme, hvis man bruger dem som labels for sine felter, så de er der, selv hvis man har en bruger der med det samme går i gang med at bruge felterne. Derfor burde jo lave det inline, så superbrugerne ikke skal vente på at det bliver hentet efter page load. Desuden bør det jo ikke afhænge af jQuery - det er jo et stort library, og det er et simpelt problem vi har.

Fold kodeboks ind/udJScript kode 


Så skal det jo bare minifies... :p

Test på jsFiddle: http://jsfiddle.net/REqUH/


@Gustav ... jeg ved ikke engang hvor slemt det er, at loade jquery, der er så mange sites, der bruger det, at det oftest er i cache det meste af tiden alligevel :P

Hvis du ikke bruger jquery, bruger du så andre "spændende" libraries / frameworks der er værd, at notere?



t