jQuery $ (form) .submit () nicht nur für IE feuern (MVC3 app)

7

Ich habe das Internet (einschließlich SO) durchforstet, und ich kann nichts finden, was mir bei meiner Situation helfen könnte, also hoffe ich, dass ich euch Hilfe holen kann.

Grundsätzlich, wie der Titel sagt, feuert die .submit () NICHT in IE. Alle anderen Browser funktionieren gut, aber in IE (8, 9, 10 bisher) feuert es einfach nicht abschicken.

Hier ist der Ansichtscode:

%Vor%

Wenn auf die Schaltflächen geklickt wird:

%Vor%

Und schließlich der Controller:

%Vor%

Beim Debuggen in IE komme ich zu der .submit () Zeile in der js und führe es von dort aus. Alles davor funktioniert gut, aber dann kommt das .submit () und es hört auf, irgendetwas zu tun. Keine Javascript-Fehler, nichts in der Konsole, keine Hinweise auf irgendwelche Probleme. In allen anderen Browsern wird der Befehl .submit () ausgelöst, und der Controller bricht in die aufgerufene Methode ein.

Irgendwelche Gedanken, warum dies in IE passiert? Ich bin mir sicher, dass jemand schon einmal darauf gestoßen ist !! Bitte helfen Sie mir, ich habe mir den ganzen Nachmittag den Kopf vom Schreibtisch gerammt!

Danke Leute!

    
SlackerCoder 24.04.2013, 20:11
quelle

6 Antworten

9

Sie könnten am besten dazu geeignet sein, die Funktion $.trigger() in jQuery zu verwenden.

Rufen Sie es ähnlich auf wie Sie .submit() aufrufen:

%Vor%

Viel Glück!

Auch

Es gibt einen Fehler im IE, bei dem das Formular nicht korrekt gesendet wird, wenn es kein

gibt %Vor%

Versuchen Sie, eins hinzuzufügen und es mit CSS zu verstecken.

    
Barry Chapman 24.04.2013, 20:21
quelle
17

Ich hatte einen ähnlichen Fehler. Meine Lösung war:

Fügen Sie das JS-Formular an ein div im DOM an, so dass der IE weiß, dass es da ist und es einreichen kann.

Hoffe es hilft

    
Vianick Oliveri 19.03.2014 18:57
quelle
4

Sie können einen Eingabesubmit in dem Formular erstellen, das Sie senden möchten, und durch Jquery klicken Sie auf den Button.

Es funktioniert gut mit IE.

Zum Beispiel:

%Vor%

Und das JS:

%Vor%     
Arturo Igualada 10.09.2013 11:47
quelle
0

Können Sie mir bitte sagen, dass Sie direkt mit dem Fileupload-Steuerelement arbeiten oder es versteckt und Sie es auf einem anderen Button-Steuerelement auslösen / aufrufen? Eigentlich hatte ich dasselbe Problem. Mein Kunde wollte, dass wir einen ausgefallenen Button anzeigen, der als Dateiupload-Kontrolle dient. Also fügten wir eine Schaltfläche und ein Fileupload-Steuerelement mit der Sichtbarkeit false hinzu und beim Klick auf die Schaltfläche lösten wir das Click-Ereignis fileupload aus. Mit Hilfe von jquery holten wir den Pfad der Datei und speicherten sie in der Datenbank. Alles funktionierte perfekt in jedem Browser mit Ausnahme von IE, da das Formular nicht im IE eingereicht wurde, wie Sie es erklärten. Nachdem wir wirklich hart gearbeitet haben, fanden wir die Lösung und Lösung, dass wir das Dateiupload-Steuerelement zeigten und es genau auf den Button setzten, indem wir seine Position setzten und die css-Opazität anwendeten: 0. Jetzt ist der Datei-Upload nicht mehr sichtbar, da die Opazität 0 ist. Wenn der Benutzer jedoch auf die Schaltfläche "Phantasie" klickt, klickt er / sie auf das Dateiupload, das auf der Schaltfläche platziert ist. Nach dieser Lösung wirkt es wie ein Zauber in jedem Browser. Hoffe das hilft dir auch.

    
Jitender Kumar 01.05.2013 11:13
quelle
0

Sie müssen den Typ der Schaltfläche / Eingabe wie folgt auf submit setzen:

<button type="submit">Submit</button>

<input type="submit" value="submit">Submit</button>

    
aztack 16.04.2014 06:32
quelle
0

Ich hatte das gleiche Problem, nur in IE 10 und IE 11. Für mich bestand die Lösung darin, das Formular zuerst mit folgendem Code anzufügen:

%Vor%

Ich lege diese Zeile direkt vor der Sendefunktion

ab %Vor%     
Julesezaar 09.08.2016 07:38
quelle