Ich habe versucht, nach ähnlichen Fragen zu suchen, aber ich konnte nichts finden, also lassen Sie mich wissen, wenn Sie ähnliche Fragen wissen.Jquery-Skript funktioniert nicht in jquery geladene Seite
Lassen Sie mich erklären, was ich mache: Ich habe ein Skript, das Formulare in einer js-Datei validiert, Es funktioniert gut in jeder Seite mit einem Formular, das ich habe, das Problem ist, dass wenn ich ein Formular mit jquery laden tut es einfach nicht ‚t Arbeit, ich habe versucht, die nächste Zeile an verschiedenen Orten mit: Header, footer, etc.
<script src='myFile.js'></script>
bei weitem das einzige, was für schreibt die Codezeile oben in der Form selbst gearbeitet hat. Ich denke, es hat etwas mit der Form zu tun, dass das DOM funktioniert, ich habe auch versucht, es zu verwenden und nicht zu verwenden.
Es funktioniert nur, wenn ich das Skript-Tag mit dem src-Attribut innerhalb des Formulars selbst hinzufügen.
Es wäre kein großes Problem für mich, das Skript-Tag zu jeder Form hinzuzufügen, die ich mit jquery lade, aber es ist ein bisschen mehr Arbeit und uneffizient, und auch wenn ich das Skript-Tag zu einem Formular hinzufügen und laden Mit Ajax bekomme ich die nächste Konsole Warnung, die nur verschwindet, wenn ich das Skript-Tag aus der Formulardatei entfernen:
jquery-3.2.1.min.js: 4 [Deprecation] synchrone XMLHttpRequest auf dem Hauptthread ist veraltet, weil seiner nachteiligen Auswirkungen auf die Erfahrung des Endbenutzers. Weitere Informationen finden Sie unter https://xhr.spec.whatwg.org/.
Hier ist ein Teil meines Code:
<!--home.html-->
<div id='formFrame'>
</div>
<script>
$("#formFrame").load("html/loginForm.html");
</script>
<!--end of home.html-->
<!--loginForm.html-->
<form action='somePage.php' method='post' id='loginForm'>
<input type='email' name='email' placeholder='email'>
<input type='password' name='password' placeholder='password'>
<input type='submit' name='submit' value='Login'>
</form>
<script src='js/validate.js'></script>
<!--end of loginForm.html-->
<!--validation script (validate.js)-->
$(document).ready(function(){
$("#loginForm").submit(function (e){
e.preventDefault();
alert("Working");
});
});
Dank für die bei der Lektüre dieser einige Ihrer wertvollen Zeit zu verbringen, ich es zu schätzen weiß viel!
Sie müssen $ (Dokument) .ready in Skript-Tag setzen. –
Vielen Dank für Ihre Antwort Nair, $ (Dokument) .ready ist bereits in meinem Skript-Tag (validate.js) geschrieben, ich denke, ich könnte Sie missverstehen, können Sie mir bitte genau angeben, wo Sie es setzen? –
'$ (" # formFrame "). Load (" html/loginForm.html ");' Ich denke, Sie versuchen, ein Element zu laden, das noch nicht existiert. Du könntest das .ready() benutzen, aber warum nicht die .load() Zeile in den selben Block wie die ready(), die du schon hast? –