Vypnutí validace formuláře při odeslání přes AJAX

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Richard Jedlička
Člen | 51
+
0
-

Ahoj,
nemůžu nikde najít řešení. Potřebuji odeslat (bez kliknutí na submit) formulář ajaxem bez toho aby se validoval, pokud ale kliknu na submit (normální NEajaxove odeslání), tak chci aby validace proběhla.

Potřebuju to, protože formulářem edituju „článek“ a chci mít u editace zároveň náhled, takže pravidelně odesílám ajaxem formulář a překresluju náhled. Náhledu chci ale zobrazovat i neúplný, tedy, že některé povinné položky nebudou vyplněny.

Je mi jasný, že jsem tohle moh vyřešit třeba tak, že budu hodnoty inputů kopírovat do náhledu přímo javascriptem bez odesílání na server, problém, je ale v tom, že hlavní text článku bude formátovaný pomocí Texy a pro to jsem nenašel žádnou javascriptovou knihovnu, která ty to uměla zparsovat.

Používám doplňky https://componette.org/search/?… a https://componette.org/search/?….

<script>
    $(document).ready(function() {
        setInterval(function() {
            $("div.text-form form").ajaxSubmit();
            return false;
        }, 100);
    });
</script>

Zkusil jsem zakomentovat řídek v jqueary.ajaxform.js, který se stará o kontrolu validace, to sice vyřadilo javascriptovou kontrolu z provozu, ale neprošlo to přes kontrolu serverovou.

Poraďte jak na to.
Dík

tomas.lang
Člen | 53
+
0
-

V rychlosti – co si tam přidat další submit, který skryješ a nastavíš mu

<?php

->setValidationScope(FALSE);

?>

tím by jsi mu validaci vyřadil, a můžeš si pro něj udělat samostatnou obsluhu, s tím, že na něj budeš klikat přes JS…

Editoval tomas.lang (20. 2. 2013 15:59)

Richard Jedlička
Člen | 51
+
0
-

Asi to vypadá jako nejrozumnější řešení. Něco takovýho mi taky párkrát prolítlo hlavou, ale nějak jsem to hned zamítnul, než jsem nad tim stačil zapřemýšlet.

Díky

Editoval uiii (20. 2. 2013 16:23)

akadlec
Člen | 1326
+
0
-

To jako vážně v intervalu 100ms pořád cyklicky odesíláš form? Proč? Není IMHO lepší na jdnotlivé elementy pověsit události pro změnu obsahu a pak jen ajaxem ty data poslat na server? Jednat tím nebudeš dělat validaci a za druhé si tu akci nadefinuješ přesně jak chceš.

Richard Jedlička
Člen | 51
+
0
-

Tak je mi jasný, že ten interval asi není úplně ideální řešení, ale zato asi nejrychlejší. A odesílat data zvlášť a mít pro ně speciální zpracování, nechci, chci to zpracovávat stejně jako ten formulář. Hlavně se s tím nechci moc patlat, alespoň ne na stávajícím projektu. Vyřešil jsem to přes ten druhej submit button bez validace, což mi nakonec vyhovuje.

Ale dík za připomínky ;)

akadlec
Člen | 1326
+
0
-

no ale není to moc chytré řešení. Otevřeš si okno, začneš psát nějaký ten text…pak se jde na hajzlík v..... a během toho ti na server letí milion requestů naprosto zbytečně, a přitom by stačilo si napsat na pár řádku akci v jQuery která by handlovala události na jednotlivých elementech.

Richard Jedlička
Člen | 51
+
0
-

No dobře popřemýšlím nad tím. :-) Jde o to, že jsem hlavně potřeboval rychle něco udělat abych viděl, že to funguje a vylepšovat to můžu vždycky pak. Je mi jasný, že tohle není úplně správný přístup, ale v daný moment to pro mě mělo smysl.