Vymazání obsahu po kliknutí do formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jay Gridley
- Člen | 16
Zdravím pěkně,
reším následující situaci: Jednotlive input boxy ve formulari mam predvyplnene metodou setEmptyValue() a potreboval bych, aby kdyz uzivatel klikne do jednoho z input boxu, aby se prevyplneny text smazal a uzivatel mohl zadat svuj vstup bez nutnosti oznacovat predvyplneny text a mazat.
Jak nejlepe na to? Diky moc za rady!
Editoval Jay Gridley (4. 8. 2009 17:24)
- Lopata
- Člen | 139
O žádném „ryze Nette“ řešení nevím.
(Nevim, jestli používáš jQuery, proto nejjednodušeji, nejprimitivněji (nejprasáčtěji… :-P))
<script>
var input = document.getElementById('frmJmenoFormu-JmenoInputu');
input.onfocus = function()
{
if (input.value == 'Hodnota z setEmptyValue()')
{
input.value = ''
}
}
input.onblur = function()
{
if (input.value == '')
{
input.value = 'Hodnota z setEmptyValue()';
}
}
</script>
Není to ale moc ideální… :-P
- PetrP
- Člen | 587
Nejčistčí řešení je (když ještě není podporováno html5) dát tu hodnotu bokem, a nad input si ji napozicovat.
$form->addText('search','Hledat')->setHtmlId('search');
<div style='display:none;' id='search-placeholder'>zadejte hledanej text</div>
<script>
var input = document.getElementById('search');
var div = document.getElementById('search-placeholder');
div.style.position = 'absolute';
div.style.left = input.offsetLeft+'px';
div.style.top = input.offsetTop+'px';
div.onmousedown = function () {
this.style.display = 'none';
input.focus();
setTimeout('input.select();',1); //IE6
};
input.onfocus = function () {
div.style.display = 'none';
};
input.onblur = function () {
if (this.value == '')
div.style.display = 'block';
};
div.style.display = 'block';
</script>
Editoval PetrP (4. 8. 2009 19:12)