Autor Zpráva
H13
Profil
Ahoj, potřeboval bych vyřešit jeden problém ohledně odeslání formuláře pomocí odkazu. Vše mi funguje v JQuery, bohužel musím použít Mootools, kde to nefunguje. Skript je následující

<form ... id="formid">
<input ...>
</form>
<a onclick="$('#formid').submit()" ...>



Pomocí odkazu (a) se spustí submit() a pomocí JQuery kódu(AJAX) se odchytí událost submitu():

$('#formid').submit(function(){
...

a formulář se odešle pomocí AJAX. V JQuery vše OK.

Ovšem v Mootools:
<form ... id="formid">
<input ...>
</form>
<a onclick="$('formid').submit()" ...>


se formulář odešle a událost se pomocí:

$('formid').addEvent('submit', function(e){
  new Event(e).stop();
...


neodchytne (i když je submit zakázaný pomocí - new Event(e).stop(); - ten se ale nestačí vykonat, protože se událost vůbec neodchytí)

Možná to může být způsobený tím, že v JQuery je definovaná funkce submit(), která toto ošetří, do toho bohužel ale nevidím :-(

Neřešil někdo podobný problém?

Díky
Aichi
Profil
proč na ten klik nespustíš tu funkcionalitu co máš v té metodě co se spouští na submit?
H13
Profil
Aichi
Protože bych pak nemohl použít ten kód všeobecně, ale musel bych ho vypisovat pro každé ID. Cílem je do "clicku" vložit jednoduchý kód spojený s ID a pomocí něho rozběhnout "submit" - všeobecný kód, který bude funkční pro všechny formuláře na stránce.

Už jsem to vyřešil (resp. bylo mi porazeno), místo submit() použít fireEvent(), pak to funguje v Mootools stejně jako v JQuery.
Chamurappi
Profil
Reaguji na H13:
Zavolání metody submit na formuláři nevyvolává událost onsubmit. Jelikož jQuery nepracuje přímo s objekty DOMu, nevoláš prohlížečový submit, ale ten frameworkový a ten se o vyvolání události pravděpodobně postará sám.

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:

0