Nicht sicher, warum dies nicht funktioniert.Einfache JavaScript-Validierung funktioniert nicht?
<!DOCTYPE html>
<html>
<head>
<title>Player 1</title>
<link rel="stylesheet" type="text/css" href="playerOne.css">
</head>
<body>
<div id="heading">
<h>Player 1</h>
</div>
<form name="playerInfo" onsubmit="return validate()" method="post">
<hr>
<fieldset>
<legend>Personal information:</legend>
<label id="inPID">Player ID:</label>
<br>
<input type="text" name="playerid" class="input" id="id" placeholder="Player ID" autofocus >
<br>
<br>
<label id="inFN">First name:</label>
<br>
<input type="text" name="firstname" class="input" id="fname" placeholder="First name" >
<br>
<br>
<label id="inLN">Last name:</label>
<br>
<input type="text" name="lastname" class="input" id="sname" placeholder="Last name" >
<br>
<br>
<label id="inEA">Email address:</label>
<br>
<input type="text" name="email" class="input" id="email" placeholder="Email address">
<br>
<br>
<label id="inPW">Password:</label>
<br>
<input type="password" name="password" class="input" id="pass" >
<br>
<br>
<input type="submit" value="Validate" class="input" id="validate" >
</fieldset>
<hr>
</form>
<div id="error"></div>
<script>
function testVal(){
return false;
}
function validate() {
var message;
var test = true;
message = document.getElementById("error");
message.innerHTML += "";
var x = document.getElementById("id");
if(x.value == ""|| x.value == null||x.value== "Player ID") {
x.style.backgroundColor = "#FF0000";
message.innerHTML += "Player ID is missing\n";
test = false;
}else{
}
var x = document.getElementById("fname");
if(x.value == ""){
x.style.borderColor = "#FF0000";
message.innerHTML += "First name is missing\n";
test = false;
}else{
}
var x = document.getElementById("sname");
if(x.value == "") {
x.style.borderColor ="#FF0000";
message.innerHTML += "Surname is missing\n";
test = false;
}else{
}
var x = document.getElementById("email");
if(x.value == "") {
x.style.borderColor = "#FF0000";
message.innerHTML += "Email is missing\n";
test = false;
}else{
}
var x = document.getElementById("pass");
if(x.value == ""){
x.style.borderColor = "#FF0000";
message.innerHTML += "Password is missing\n";
test = false;
}else{
}
return test;
}
</script>
</body>
So soll es die Farbe der Grenzen zu rot, wenn die Eingabe falsch (oder leer) ist, und den Benutzer in einem div informieren. Aus irgendeinem Grund wird der Code immer gesendet, ohne die Fehler zu erkennen. Ich bin auch ein Anfänger bei JavaScript (und HTML), also wenn jemand irgendeinen Beitrag zur Verbesserung dieses Codes hat, würde ich es schätzen.
EDIT: Entschuldigung. Ich habe die falsche Version des Codes hochgeladen, die testval-Funktion war nur da, um zu überprüfen, ob der onsubmit korrekt funktioniert hat, und die Validierungsfunktion heißt jetzt onsubmit, wo/wann es sein sollte, aber nicht funktioniert.
EDIT 2: Vielen Dank für Ihre Hilfe zum Format und zur korrekten Verwendung des Tags. Ich habe es nach Ihren Empfehlungen bearbeitet, jedoch funktioniert die eigentliche Validierung (Funktion) immer noch nicht, trotz der Einbeziehung von Anführungszeichen.
Referenzen:
http://www.w3schools.com/js/js_validation.asp
http://www.tutorialspoint.com/javascript/javascript_form_validations.htm
anzeigen Quellcode 'testVal' Funktion –
testVal gibt nur falsche –
Sie haben einen Tippfehler' retrun' –