Autor Zpráva
Someone
Profil
Zdravím, narazil jsem na menší problém:
<form onsubmit="funkce()">
funkce() je ajaxová funkce, která vrácí false nebo true na základě odpovědi ze serveru. A zde nastává problém. Nehledě na to zda se vrátí true nebo false se formulář odešle. Došel jsem k tomu, že tam roli asi bude hrát prodleva mezi zavoláním funkce a odpovědí serveru. Otázka zní: Došel jsem ke správnému závěru? a pokud ano, jak tento problém řešit. Předem děkuji za každou odpověď.
Radek9
Profil
Someone:
Zaprvé to má vypadat takto:
<form onsubmit="return funkce();">
A za druhé: Pokud ten bool vrací ta asynchronně volaná metoda, tak je to opravdu špatně.
Someone
Profil
Radek9:
Zaprvé to má vypadat takto:
Jistě tak to mám, přepsal jsem se při psaní topicu.
Došel jsem k tomu, že to bude tím, otázka zní jak to vyřešit..
Radek9
Profil
Someone:
Spustit funkci, ihned vrátit false a pokud asynchronní metoda nemá zastavit odesílání, tak formulář odešle přes metodu submit.
Darker
Profil
Opravdu to musíš dělat takhle ajaxem? Můžeš mi říct, k čemu pak v té kontrole vůbec je javascript?
Someone
Profil
Radek9:
Když ihned po zavolání funkce vrátim false ta kse neprovede zbytek funkce. Pokud jsi to myslel tak, že při submitu zavolám funkci a zároveň false tak mi potom submit() bude k ničemu protože to dopadne stejně.
Darker:
Před odesláním potřebuji zjistit, zda se řetězec v inputu vyskytuje v databázi a pokud ano, zastavit odesílání formuláře a zobrazit div.
Radek9
Profil
Someone:
<form name="something" onsubmit="funkce(); return false;">
…
<script>
function funkce(){
  AJAX(…, function(data){
    …
    if(/*odeslat*/){
      document.something.submit();
    }
  });
}
</script>
Darker
Profil
Someone:
Před odesláním potřebuji zjistit,
Proč to nekontroluješ už při opuštění inputu?
Someone
Profil
Radek9:
A to „document.something.submit();“ nespustí událost onsubmit, která vrátí false?
Darker:
Jedná se o vyhledávací input, který se bude odesílat i pomocí enteru.
Radek9
Profil
Someone:
Ne.
Someone
Profil
Radek9:
Ok, díky super... Tato možnost mě napadla, ale myslel jsem si, že to dopadne tak, že se i přes submit() aktivuje událost onsubmit.

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: