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%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%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.
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.
versuche das. arbeite für mich.
onSubmit="javascript: return false"
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.
Die Lösung für uns bestand darin, das JavaScript-Ereignis von "onsubmit" des Formulars in "onclick" des Absenden-Buttons zu verschieben.
%Vor%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.
Ich denke, dass das Problem im Gegenzug falsch ist, müssen Sie es von Ihrer 'onsubmit' Funktion
zurückgebensiehe Beispiel.
Dieses Formular wird auch niemals im IE 7/8 eingereicht.
%Vor%Danny.
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.
Tags und Links javascript forms internet-explorer-8 internet-explorer-7 onsubmit