Heim >Web-Frontend >HTML-Tutorial >Das Submit-Ereignis des Formulars reagiert nicht auf die Erstellung von HTML/Xhtml-Webseiten

Das Submit-Ereignis des Formulars reagiert nicht auf die Erstellung von HTML/Xhtml-Webseiten

WBOY
WBOYOriginal
2016-05-16 16:45:491615Durchsuche

1. Problembeschreibung
Wenn Sie JS zum Aufrufen der Formularmethode „submit“ verwenden, um das Formular direkt zu senden, reagiert das Submit-Ereignis nicht. Warum? Wenn Sie es wissen, antworten Sie bitte. Analog dazu habe ich input.select() zum Testen verwendet, aber es konnte auf das Select-Ereignis reagieren. Lassen wir diesen Grund vorerst beiseite und schauen wir uns zunächst an, wie wir das aktuelle Problem lösen können.
Codebeispiel, das nicht auf Ereignisse reagiert:



Im tatsächlichen Betrieb erfolgt keine Warnung.
Obwohl die Verwendung der Submit-Methode zum Senden eines Formulars gegen die Prinzipien von Unobtrustive Javascript verstößt, ist es manchmal notwendig, zum Beispiel bei der Erstellung einer Suchaufforderung (automatische Vervollständigung) und der Auswahl eines Elements JS zum Senden zu verwenden das Suchformular. 2. Problemanalyse

Da es nicht auf Ereignisse reagiert, können diese Ereignisse nur manuell ausgelöst werden. Bevor Sie den manuellen Auslöseplan festlegen, überprüfen Sie die Ereignisregistrierungsmethoden:
Es gibt zwei „ursprüngliche“ Registrierungsmethoden, siehe Codebeispiel:




Ein solches Registrierungsereignis fügt dem Formular eine Methode onsubmit hinzu. Daher können Sie diese Methode direkt ausführen, was dem manuellen Auslösen des Ereignisses entspricht. Sehen Sie sich das Codebeispiel an:


Dies kann eine Warnung auslösen. Aber die heutige „fortgeschrittene“ DOM2-Standardregistrierungsmethode und die IE-Registrierungsmethode attachmentEvent werden bereits sehr häufig verwendet. Für diese Registrierungsmethoden ist die Methode onsubmit nicht vorhanden. Wenn Sie form.onsubmit() verwenden, wird direkt ein Fehler gemeldet.

3. Lösung Natürlich bietet die „erweiterte“ Registrierungsmethode selbst auch eine Lösung zum manuellen Auslösen von Ereignissen, erfordert jedoch das Schreiben unterschiedlicher Programme für den DOM2-Standard und den IE. Darüber hinaus ist dieses Programm auch für die „ursprüngliche“ Registrierungsmethode wirksam . Bitte sehen Sie sich das Codebeispiel an:


4. Code-Zusammenfassung
Hier werden wir nicht die Details der einzelnen Methoden erklären. Freunde, die damit nicht vertraut sind, sollten die relevanten Informationen selbst überprüfen. Lassen Sie uns den gesamten Code aneinanderreihen:




Einreichen






Es gibt ein kleines Problem im gesamten Prozess, da form.submit() nicht erforderlich ist und das Formular direkt gesendet wird. Wenn Sie den Grund kennen, antworten Sie bitte. Diese Demo wurde unter IE6/IE7/FX getestet und bestanden.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn