/ / jQuery udalosť len v prípade, že formulár úspešne odoslaný - javascript, jquery, html, formuláre

jQuery udalosť len vtedy, ak formulár úspešne odoslal - javascript, jquery, html, formuláre

Mám formulár, ktorý má validáciu. V súčasnosti môže formulár trvať až 10 sekúnd. Chcem mať načítanie load.gif na formulári odoslať. Problém, ktorý mám v súčasnosti, je gif, aj keď formulár nevyhovel overeniu.

Potrebujem spôsob, ako dostať gif načítať iba ak je formulár platný, tu je môj aktuálny skript:

$("form").submit(function() {
$("#gif").css("visibility", "visible");
return true;
});

Používam parsley.js na overenie

odpovede:

3 pre odpoveď č. 1
$("form").submit(function() {
var $form = $(this);
$form.parsley().validate();

if ($form.parsley().isValid())
$("#gif").css("visibility", "visible");
});

Použite parsley.js na určenie, či je formulár platný alebo nie pred zobrazením gifu, explicitným volaním validate.

Ako stranou, buďte opatrní form ako selektor. Môžete mať viacero formulárov na stránku. Ak je to možné, použite ID.


-1 pre odpoveď č. 2

Ak chcete zobraziť / skryť zavádzaciu schránku, kým sa požiadavka nevykoná, nemusíte používať predvolené nastavenia form.action na odosielanie údajov. Musíte takto urobiť:

$("#form").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
var $form = $(this);
if(this.checkValidity()) { // form validation based on HTML 5
$("#gif").css("visibility", "visible");
/* Send the data using post */
var posting = $.post($form.attr("action"), $form.serialize());
posting.done(function() {
console.log("Request was executed successfully!!!")
}).always(function() {
// hide loading bar in any way on success/error
$("#gif").css("visibility", "hidden");
})
}
})