Autor Zpráva
Valášek
Profil *
Prosím, jak nejjednodušeji přes js automaticky měnit písmo při změně textu v závislosti na placeholder
Mám v dokumentu např. prvky:
<input type="text" placeholder="Sem doplnit jméno..." />
<textarea placeholder="Sem doplnit text..."></textarea>
v css
.col1 {color:red; font-weight:normal;}
.col2 {color:blue; font-weight:bold;}

Jak u každého input a textarea prvku obsahujícího parametr placeholder automaticky nastavovat při změně textu vlastnosti písma dle css tak
jestliže text == placeholder nebo je prázdný písmo má vlastnosti col1 jinak col2.
Děkuji za radu
Trejpa
Profil
Valášek:
Proč v JavaScriptu? Existuje přece CSS pseudoelement ::placeholder, který má stejně omezenou podporu, jako samotný atribut placeholder.
Valášek
Profil *
Aha, no a když by to nebylo vázané na hodnotu placeholder, ale třeba na hodnotu jiného prvku?
<textarea id="prvek"></textarea><span id="prvek-no" style="display:none">Sem doplnit jméno...</span>
tzn. při přepnutí prvku, jeli hodnota prázdný řetězec nastaví se hodnota z id prvek-no
To by snad bylo funkční pro všechny prohlížeče?
Trejpa
Profil
Valášek:
Placeholder jde jednoduše udělat z dafaultValue daného políčka.

Drobnou úpravou to lze zobecnit do funkce a přidat třídy podle zadané hodnoty – příklad.
Valášek
Profil *
Trejpa:
Přesně takhle jsem si to představoval, zítra se pokusím zapracovat do svých stránek.
Mnohokrát děkuji za perfektní pomoc
Valášek
Profil *
Ještě další vlastnost, chtěl bych nastavit typ písma dle textu, jestliže je hodnota nastavena a <> placeholder font=bold jinak normal. tzn. asi je nutné reagovat na událost onchange, jenže nějak mě to nefachčí. Prosím, byla by ještě rada...pro prvek textarea. Děkuji
Trejpa
Profil
Valášek:
jestliže je hodnota nastavena a <> placeholder font=bold jinak normal
Nastavíš ve stylech tučnost dané třídě:
.zadane { border: solid 3px lightgreen; color: black; font-weight: bold; }

Prosím, byla by ještě rada...pro prvek textarea.
Jaká rada? Funguje na to stejný skript. Jen výchozí hodnotu value nepíšeš do parametru, ale mezi značky:
<textarea class=nedotcene name=jmenopolicka placeholder="Vlož text"
onfocus="f(this,true)" onblur="f(this,false)">Vlož text</textarea>
Valášek
Profil *
Trejpa:
Jasně, jenže jestliže se přepnu do texarea který není nastaven zobrazí se Vlož text (font=normal), ale začnu psát a pak chci, aby byl font=bold
Trejpa
Profil
Valášek:
.zadane, .upravujese { font-weight: bold; }


A pokud změnu nepozoruješ, tak si změň druh písma v textarea. Na výchozím courieru je totiž tučnost hůře vidět.
textarea { font: 85% sans-serif; }

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: