Autor Zpráva
Thomasss
Profil *
Potřeboval bych nějakým způsobem udělat, aby mi text zmizel z <textarea> jakmile do pole člověk klikne.
Podobně jako je to [url=java.tatousek.cz/script_engine.asp?zobrazit=181]zde[/url], v tomto případě jde ale o <input>.
Thomasss
Profil *
omlouvám se za odkaz... http://java.tatousek.cz/script_engine.asp?zobrazit=181
H13
Profil
V JS se moc nevyznám, ale když to zapíši stejně jako u <input> (textarea nemá atributy value a type), tak to ve FF, IE 7 a Opeře funguje:


<form>
<textarea name="telefon" onmousedown="this.value=''">Nejaka hodnota</textarea>
</form>
Mistr
Profil
Thomasss
To lze jednoduše udělat přes JavaScript, ne?
Mistr
Profil
<textarea name="telefon" value="+420 603 123456" onmousedown="this.value=''">

Koukám, že kolega H13 byl krapítek rychlejší.
Mistr
Profil
Thomasss
Jen si dej bacha na to, že na konci nejsou dvoje uvozovky, nýbrž dva apostrofy a jedny uvozovky.
H13
Profil
Koukám, že kolega H13 byl krapítek rychlejší.

No to se mi stává pořád, vypadá to, že nikdo na dotaz neodpovídá a když tam vložíš odpověď, tak se tam něčí odpověď objeví před tebou. Naštěstí neobjevujeme Ameriku : - )
peta
Profil *
Thomasss
Ten priklad H13, to je ono.
Kdyz neco napisi a kliknu na to znova, tak se mi text opet ztrati. Jediny zpusob, jak tam dostat kurzor je pak jedite TAB klavesou. Coz je celkem neprijemna zalezitost, nemyslis?
H13
Profil
peta


Jediny zpusob, jak tam dostat kurzor je pak jedite TAB klavesou

Jediný způsob to samozřejmě není, stačí vytvořit pár řádků JS


<script type="text/javascript">
var i = 0;
function deleteFirstTime () {
if (i==0)
{
document.getElementById('telefon').value="";
i++;
}
}
</script>

<form name"form">
<textarea id="telefon" name="tel" onmousedown="deleteFirstTime()">ahoj</textarea>
</form>


Když uživatel najede na formulář poprvé, přednastavená hodnota se smaže (i==0), jakmile najede na formulář po druhé (třetí, čtvrté, atd...) hodnota se nemaže a zůstává ve formuláři ...
peta
Profil *
H13
Ano, ty jsi pridal dalsi script.
Na to jsem prave chtel upozornit, ze by to mel napsat asi trochu jinak a ne tak, aby se to pokazde smazalo, vis? Jsi to vyresil za nej :)
Mistr
Profil
peta
Kdyz neco napisi a kliknu na to znova, tak se mi text opet ztrati.
Vidíš, zajímavý postřeh. To mě nenapadlo.
los
Profil *
Když uživatel najede na formulář poprvé, přednastavená hodnota se smaže (i==0)
Čo nie je príliš šikovne spravené, pretože i je globálna premenná, takže ak bude na stránke takých prvkov viac (prípadne niekto použije globálnu premennú i v inej funkcii), tak to prestane fungovať.
Onecar
Profil
smazat prosím, špatný topic
peta
Profil *
los :) Presne, dalsi zajimavy postreh. Navrhoval bych zalozit pole objektu. A to konkretne asociativni a tridil bych to treba podle NAME nebo Id
var i = new Object();
var x = this.name;
if (Boolean(i[x])) return;
else {i[x]=1;}
los
Profil *
peta: To je o niečo lepšie, ale globálne premenné sa vôbec nemusia použiť.

Stačí nastaviť nejakú vlastnosť elementu, že text v ňom bol zmazaný. Napríklad by to mohla byť premenná input.cleared alebo input.className. V prípade, že by sme menili input.className, tak by sa to dalo využiť napr. aj na naštýlovanie nevyplnených polí.

Ešte by som to zavesil na udalosť focus a nie na mousedown, ale keď niekomu takéto správanie vyhovuje...
Toto téma je uzamčeno. Odpověď nelze zaslat.