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");
})
}
})