Autor Zpráva
Mufna
Profil
Zdravím Vás. Potřebuji změnit událost onblur v existujícím inputu (vzdáleně, nemůžu editovat přímo ten input)
<form id="searchbox">
// .... nějaký kód
<input id="csquicksearch" class="search_query" type="text" onblur="if (this.value =='') this.value='Vyhledat...'" onfocus="this.value=''" value="Vyhledat... " name="search_query">
// ... nějaký kód
</form>

Zatím jsem to zkusil takto, ale nefunguje mi to:
$('#searchbox').find('#csquicksearch').blur(function() {
  if ($this.value =='') $this.value='Co hledáte? Např. čokoláda';
});

Možná dělám jenom syntaktickou chybu, nevím. Poradíte mi prosím někdo ? Předem díky
_es
Profil
Mufna:
Na čo do toho montuješ jQuery? Čomu čakáš, že sa bude rovnať (asi neexistujúca) premenná $this? Veľmi jednoducho:
document.getElementById('csquicksearch').onblur = function() {
  if (this.value =='') this.value='Co hledáte? Např. čokoláda';
};
Okrem toho, čo to má vlastne robiť? Nemá to byť skôr atribút placeholder? Návštevníci asi nebudú mať radosť z toho, že musia najprv z políčka zmazať text „Co hledáte? Např. čokoláda“, predtým, než by tam mohli niečo napísať.
Mufna
Profil
_es:
díky za reakci ... já to prostě potřebuju pomocí jQuery, nějak v tom duchu jak jsem to naznačil, včetně toho find() atd., lze ten můj pokus upravit, aby to fungovalo ?
má to jen nahradit to "onblur" v prvním kódu, pomocí JS, nic víc

Nemá to byť skôr atribút placeholder ?
ne, nic takového nepotřebuju
KryVosa
Profil
Tak, když je to tedy Vaším přáním...
$('#searchbox').find('#csquicksearch').blur(function() {
  if (this.value =='') this.value='Co hledáte? Např. čokoláda';
});
Jediným problémem je, že žádně $this neexistuje. Musíš si vybrat mezi $(this) a this.
_es
Profil
Mufna:
já to prostě potřebuju pomocí jQuery
A v čom je problém? Kód z [#2] predsa nezávisí od toho, čo tam jQuery máš alebo nemáš. Ak potrebuješ aj odstrániť pôvodnú akciu na onblur, tak to spravíš len „normálne“ zmenením vlastnosti onblur, v čom ti jQuery veľmi nepomôže.

KryVosa [#4]:
To nebude fungovať, lebo chce „zmeniťonblur a hento len pridá ďalšiu akciu po udalosti. A obe akcie budú v takom poradí, že to ani nebude mať efekt: Živá ukázka, no: Živá ukázka bude fungovať.

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: