Autor Zpráva
dejvos
Profil
Zdravím,

chtěl jsem se zeptat jestli a jak lze vyvolat událost Javascriptem. Mám formulář, kde vyplňuji datum pomocí kalendáře který se otevře v vyskakovacím okně. Následně bych potřeboval vyvolat do inputu, kam vložím aktuální datum, akci blur ... to se snad daří:

window.opener.document.forms['datum'].focus();
window.opener.document.forms['datum'].value = datum();
window.opener.document.forms['datum'].blur();


Nějak mi ovšem původní input nepobírá akci blur .... nenastane událost onBlur. Sice z inputu zmizí kurzor, ale nespustí se mi funkce, kterou má vyvolat onBlur.

Díky
Joker
Profil
dejvos
Sice z inputu zmizí kurzor, ale nespustí se mi funkce, kterou má vyvolat onBlur.
Není lepší ty metody zavolat přímo?
_es
Profil
dejvos
Môžeš po *.blur() ešte spustiť aj priamo *.onblur()
dejvos
Profil
_es
Môžeš po *.blur() ešte spustiť aj priamo *.onblur()

No, jestli jsem to dobře pochopil, tak to pak mělo vypadat takto:

window.opener.document.forms['datum'].focus();
window.opener.document.forms['datum'].value = datum();
window.opener.document.forms['datum'].blur();
window.opener.document.forms['datum'].onblur();

No, takhle script skončí chybou ....

Joker
Není lepší ty metody zavolat přímo?

No, já bych chtěl, abych mohl v prvcích definovat různé reakce na onBlur() ...
Chamurappi
Profil
Reaguji na dejvose:
Objekt document.forms['datum'] není políčko s name="datum", ale formulář s name="datum". Dotyčné formulářové pole můžeš najít pomocí document.forms["jméno-formuláře"]["datum"] nebo pomocí document.getElementById("jeho-id").

Nějak mi ovšem původní input nepobírá akci blur
Trochu mi vrtá hlavou, že si stěžuješ na blur, když by ti nemělo fungovat ani nastavení value.
dejvos
Profil
:D .... ups ... mam to tak jak říkáš ... já jsem přepisoval script, který je delši a ulítly mi tam jedny hranaté závorky

tak znovu a lepe:
window.opener.document.forms['form']['datum'].focus();
window.opener.document.forms['form']['datum'].value = datum();
window.opener.document.forms['form']['datum'].blur();
window.opener.document.forms['form']['datum'].onblur();


Díky
dejvos
Profil
Jinak tedy už vyřešeno ...

Pravdu měl _es ... moje reakce byla poněkud histerická, zkoušel jsem to na špatné verzi skriptu ....

Takže finále:

window.opener.document.forms['form']['datum'].focus();
window.opener.document.forms['form']['datum'].value = datum();
window.opener.document.forms['form']['datum'].blur();
window.opener.document.forms['form']['datum'].onblur();

Díky.
_es
Profil
dejvos
Ešte by sa zišlo trochu ten kód skrátiť:
var o = window.opener.document.forms['form']['datum'];
o.focus(); o. ...
Dá sa to ešte viac skrátiť, no ten spôsob je nedoporučovaný, preto ho tu ani neuvediem.:-)

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: