Vypnutí validace formuláře při odeslání přes AJAX
- Richard Jedlička
- Člen | 51
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
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
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)
- Richard Jedlička
- Člen | 51
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
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
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.