2016-08-06 15 views
0

Ich habe ein Formular, das nur gut übermittelt, aber wenn ich jQuery-Code hinzufügen, um ein Laden div mit spin.js zu zeigen, funktioniert alles nicht mehr.jQuery submit() mit spin.js verhindert das Senden des Formulars?

Sobald ich den folgenden Code hinzufügen, stoppt das Formular zu übermitteln und nichts passiert. Das Lade-Div zeigt für einen kurzen Moment und verschwindet dann wie erwartet, aber es scheint so, als ob das Formular nicht mehr wirklich reicht.

var opts = // Array of options 
var spinner = null; 
$("#search_form").submit(function() { 
    spinner_div = document.getElementById('spinner'); 
    if(spinner == null) { 
     spinner = new Spinner(opts).spin(spinner_div); 
     $("#search_results, #query").css({"opacity": "0.75"}); 
     $("#search_form :input").attr("disabled", true); 

    } else { 
     spinner.spin(spinner_div); 
     $("#search_results, #query").css({"opacity": "0.75"}); 
     $("#search_form :input").attr("disabled", true); 
    } 
}); 

Wenn ich ändern all dieser Code in der einreichen Veranstaltung dazu:

$("#search_form").submit(function() { 
    alert ("form submitted"); 
}); 

Es zeigt den Alarm und gibt dann die Ergebnisse der Formulareinreichung gut.

Was mache ich hier falsch?

EDIT Ich sah in dem jQuery docs für submit(), die ich nicht den Namen "Eintragen" auf dem Eingabefeld verwendet werden soll. Ich habe versucht, das auch ohne Glück zu ändern.

+0

Können Sie eine jsfiddle schreiben? Meine beste Vermutung ist, dass Sie einen Fehler haben, der Ihren Code – Joundill

+0

jsfiddle, oder ein Schnipsel anhält, weil es bequemer ist. – technico

+0

Ich gehe davon aus, dass Sie das Formular über AJAX senden, Sie sollten diesen Teil des Codes auch hinzufügen. –

Antwort

0

Nun, ich bin mir nicht sicher, warum, aber einfach dies zu tun gearbeitet:

$("#search_form").submit(function() { 
    var spinner_div = document.getElementById('spinner'); 
    var spinner = new Spinner(opts); 
    spinner.spin(spinner_div); 
}); 
Verwandte Themen