Ich habe eine Formularseite, die ich mit Ajax einreichen möchte. Mein Plan ist es, 1. Überprüfen Sie, ob E-Mail bereits mit existiert Ajax 2. Überprüfen Sie, ob Passwörter 3. übereinstimmen Ist dies der Fall, schalten Sie auf einen anderen „Bildschirm“ und 4. Senden Sie das Formular mit AjaxAjax Callback nicht ausgeführt
Ich bin verwirrt, weil die Validierungsfunktion nicht ausgeführt wird. Es schaltet weder Bildschirme noch Warnungen, wenn Passwörter nicht übereinstimmen. Daher wird das Formular auch nicht übermittelt. Mein Code geht unter
$('form input:last-child').click(function(e){
e.preventDefault();
var allFields = e.target.parentNode;
function validate() {
if (allFields.elements[3].value !== allFields.elements[4].value) {
return false; // If they don't match, return false
} else {
$('#form-div form').css('left', '-70%');
$('#confirm p').css('margin-left', '-12%'); // else switch screens
}
}
if (validate != false) {
$('#hidden').load("server_script.php"); // `hidden` is a hidden div somewhere on the page
} else
alert ("Passwords do not match");
});
Ich denke, wenn sie läuft nicht übereinstimmen, wird nicht der Rest des Ereignis-Listener, da die falschen auf die Funktion von diesem Punkt beendet. Also habe ich versucht, eine Instanz der Validierungsfunktion außerhalb des Ereignis-Listeners zu machen und sie innerhalb der click-Funktion aufzurufen, aber sie wird aufgrund von Abhängigkeitsvariablen nicht analysiert, so dass ich mir nicht sicher bin, wie ich das anstellen soll.
UPDATE Assoziierte HTML angehängt. (Bonus: das RegexMuster entspricht nicht 2 oder mehr Buchstaben)
<div id=form-div>
<form method=POST action="" >
First Name: <br> <input type=text name=first_name pattern="[a-z]{2,}" required /> <br> <br>
Last Name: <br> <input type=text name=last_name pattern="[a-z]{2,}" required /> <br> <br>
Email: <span id=emailReport></span> <br> <input type=email name=email id=email required /> <br> <br>
Password: <br> <input type=password name=password required pattern=".{6,}" title="Password must be six or more characters" /> <br> <br>
Confirm password: <br> <input type=password name=password required /> <br> <br>
<input type=hidden name=sign_up_date />
<input type=submit value='sign up' />
</form>
<div id=confirm> <p>Some text</p> </div>
</div>
</div>
ohne die damit verbundenen HTML seine schwer von Hilfe zu sein – RiggsFolly
Was ist ' validiere! = falsch? –
@RiggsFolly hinzugefügt die html –