onsubmit="return false" hat keine Auswirkungen auf Internet Explorer 7/8 (Formular wird noch gesendet)

8

Ich habe ein Formular, das von JavaScript-Code eingereicht wird, der in "onsubmit" des Tags ausgelöst wird. Funktioniert auf allen Browsern - aber nicht auf IE7 / IE8.

Was kann ich tun?

%Vor%     
Dirk Paessler 02.11.2010, 13:42
quelle

14 Antworten

11

Ich werde das nitpick. Wenn Sie Formulareinreichungen bearbeiten möchten, ist dies der Fall, für den submit ist. Wenn der Benutzer in eines Ihrer Felder eingibt, wird Ihr onclick-Handler vollständig vermieden. Hier ist ein grundlegendes Beispiel dafür, dies auf unaufdringliche Weise zu tun.

%Vor%

Dies kann mit jQuery, der gleichen Form viel einfacher gemacht werden ...

%Vor%     
Drew 02.11.2010 13:55
quelle
6

Einige der hier vorgeschlagenen Ideen funktionieren (weil sie unterschiedliche Methoden verwenden, um korrekten Code zu schreiben), aber es gibt eine viel einfachere Antwort

OP schrieb:

%Vor%

anstelle von:

%Vor%

Das ist es.

    
Thibault Witzig 22.10.2015 14:10
quelle
3

Ich glaube nicht, dass deine Rückkehr falsch ist, da sie nach dem kommt, was von deiner Funktion zurückgegeben wurde.

%Vor%

Stellen Sie sicher, dass Sie false in Ihrer Funktion 'sublimform ()' zurückgeben, andernfalls wird sie möglicherweise in das Formular 'obsubmit' zurückkehren.

    
Ally 16.07.2012 18:06
quelle
2
%Vor%

Die attach-Ereignismethode funktioniert nur für IE7 / 8. Wenn Sie eine zuverlässige Cross-Browser-Lösung wünschen, sollten Sie addEventListener als Alternative verwenden.

Hoffe es hilft

    
Sergiu 05.04.2012 20:33
quelle
2

versuche das. arbeite für mich.

  

onSubmit="javascript: return false"

    
Husnu Setiawan 08.11.2013 02:50
quelle
1

Um ein Ereignis in einem älteren IE abzubrechen, müssen Sie returnValue auf false setzen. Die Rückkehr von false wird es nicht tun. Ich weiß nicht, warum Microsoft es auf diese Weise implementiert hat.

%Vor%     
Dissident Rage 18.10.2013 12:03
quelle
0

Die Lösung für uns bestand darin, das JavaScript-Ereignis von "onsubmit" des Formulars in "onclick" des Absenden-Buttons zu verschieben.

%Vor%     
Dirk Paessler 02.11.2010 13:45
quelle
0

Ich hatte den gleichen Fehler und als ich die Konsole einschaltete, kam sie nie. Ich fand heraus, dass es die Konsole war, die der Internet Explorer nicht kannte, solange sie ausgeschaltet war. Fügen Sie dem Fenster einfach eine Dummy-Konsole mit dem folgenden Code hinzu (falls noch keiner vorhanden ist):

%Vor%

Damit könntest du in Schwierigkeiten geraten, wenn du Microsofts JavaScript-Konsole haben willst. Dann kommentiere einfach die Zeilen aus. Aber jetzt ist das Konsolenobjekt auf der gesamten Site nicht mehr undefiniert.

    
redestructa 25.06.2013 19:03
quelle
0
%Vor%
  

das funktioniert gut ... die Funktion muss wahr oder falsch zurückgeben

    
Atiqur 22.09.2013 12:31
quelle
-1

Tatsächlich, weil Sie submitmyform();return false schreiben, wird nur submitmyform ausgewertet.

Im Fall von zwei Befehlen müssen Sie sie zwischen geschweiften Klammern wie folgt setzen

%Vor%

, so dass beide ausgewertet werden.

    
Tibi 24.07.2012 09:15
quelle
-2

Ich denke, dass das Problem im Gegenzug falsch ist, müssen Sie es von Ihrer 'onsubmit' Funktion

zurückgeben

siehe Beispiel.

Dieses Formular wird auch niemals im IE 7/8 eingereicht.

%Vor%

Danny.

    
danny.lesnik 02.11.2010 13:48
quelle
-2

Es funktioniert - überprüfen W3Scools Beispiel (entnommen aus) Ссылка

%Vor%     
SimSimY 02.11.2010 13:49
quelle
-2

Wenn Sie möchten, dass IE standardkonform ist, müssen Sie ihm mitteilen, welchen Standard er in einer Deklaration erfüllen soll.

Ohne einen wird es endlose Frustration sein, es zu tun, was Sie wollen. Mit einem, die meisten der Frustration geht weg, weil es beginnt zu arbeiten wie jeder andere Browser.

    
Henrik 08.04.2012 12:20
quelle
-2
%Vor%     
nandoOverFLow 05.09.2014 16:02
quelle