Javascript <td> dynamisch beschreiben

asolution

Mitglied
Liebes Forum


Ich möchte gerne ein <td> beschreiben, wenn ein Feld, auf einem Formular falsche Eingaben hat. Das <td> ist hinter deim <input> Feld. Ich habe bereits diverse Sachen ausprobiert und auf kein Resultat gekommen.

Könnt ihr mir weiterhelfen?

Javascript:
function chkFormular() {

	if (document.register.username.value == "") {
		document.getElementbyId("usernameField").innerHTML = "Mindestens 6 Zeichen und keine */%";
		var fehlerusername = 1;
		var fehler = 1;
	}
	
	
	
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
	var checkStr = document.register.username.value;
	var allValid = true;
	for (i = 0; i < checkStr.length; i++)
	{
	ch = checkStr.charAt(i);
	for (j = 0; j < checkOK.length; j++)
	if (ch == checkOK.charAt(j))
	break;
	if (j == checkOK.length)
	{
	allValid = false;
	break;
	}
	}
	if (!allValid)
	{
		var fehlerusername = 1;
		var fehler = 1;
	}
}

Mit diesen innerHTML funktioniert das leider nicht -.-

Formular:

HTML:
<?php
session_start();
$alterzahlen=array("16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99");
?>

<html>
<head>
<script type="text/javascript" src="check_formular.js"></script>

<title>Registrierung</title>
<link rel="stylesheet" type="text/css" href="design.css">
</head>

<body>
<form name="register" action="regprocess.php" method="POST"
	style="margin-top: 15px; margin-left: 15px"
	onsubmit="return chkFormular();">
<table>
	<tr>
		<td>Username:</td>
		<td><a
			onmouseover="showBallon('Keine Sonderzeichen (!?$<>) erlaubt!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="username" size="50" tooltipText="Type in your firstname in this box"></a></td>
		<td id="usernameField"></td>
	</tr>
	<tr>
		<td>Passwort:</td>
		<td><a
			onmouseover="showBallon('Mindestens 6 Zeichen!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="password"
			name="pwd" size="50"></a></td>
	</tr>
	<tr>
		<td>Passwort wiederholen:</td>
		<td><a
			onmouseover="showBallon('Wiederholung des Passworts, mindestens 6 Zeichen!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="password"
			name="pass2" size="50"></a></td>
	</tr>
	<tr height="20px">
		<td></td>
	</tr>
	<tr>
		<td>Anrede:</td>
		<td><select name="anrede">
			<option value=""></option>
			<option value="Herr">Herr</option>
			<option value="Frau">Frau</option>
		</select> <?php 
		if ($_POST['registrieren']) {
			$anredevar = $_POST['anrede'];
		}
		?></td>
	</tr>
	<tr>
		<td>Name:</td>
		<td><a
			onmouseover="showBallon('Keine Sonderzeichen (!?$<>) erlaubt!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="name" size="50"></a></td>
	</tr>
	<tr>
		<td>Vorname:</td>
		<td><a
			onmouseover="showBallon('Keine Sonderzeichen (!?$<>) erlaubt!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="vorname" size="50"></a></td>
	</tr>
	<tr>
		<td>Alter:</td>
		<td><?php 
		echo '<select name="age">';

		foreach ($alterzahlen as $var){
			echo '<option value="'.$var.'">'.$var.'</option>';
		}

		echo '</select>';

		if ($_POST['registrieren']) {
			$altervar = $_POST['age'];
		}
		?></td>
	</tr>
	<tr>
		<td>E-Mail:</td>
		<td><a
			onmouseover="showBallon('Gültige E-Mail Adresse ohne Sonderzeichen (!?$<>)!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="email" size="50"></a></td>
	</tr>
	<tr>
		<td>Strasse:</td>
		<td><a
			onmouseover="showBallon('Keine Sonderzeichen (!?$<>) erlaubt!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="strasse" size="50"></a></td>
	</tr>
	<tr>
		<td>Ort:</td>
		<td><a
			onmouseover="showBallon('Keine Sonderzeichen (!?$<>) erlaubt!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="ort" size="50"></a></td>
	</tr>
	<tr>
		<td>PLZ:</td>
		<td><a
			onmouseover="showBallon('Gültige Postleitzahl angeben!'); window.status='Tooltip 1'; return true;"
			onmouseout="hideBallon(); return true;"> <input type="text"
			name="plz" size="4"></a></td>
	</tr>
	<tr>
		<td>Land:</td>
		<td><select name="land">
			<option value="Schweiz">Schweiz</option>
		</select> <?php 
		if ($_POST['registrieren']) {
			$landvar = $_POST['land'];
		}
		?></td>
	</tr>
	<tr height="20px">
		<td></td>
	</tr>
	<tr>
		<td><img src="captcha.php" /></td>
		<td><input type="text" name="captchatxt" size="20"
			value="Bitte Code eingeben.."
			onFocus="if(this.value=='Bitte Code eingeben..') this.value='';"
			onblur="if(this.value=='') this.value='Bitte Code eingeben..';"></td>
	</tr>
	<tr>
		<td><a href="">Code neuladen</a></td>
	</tr>
	<tr height="20px">
		<td></td>
	</tr>
	<tr>
		<td></td>
	</tr>
	<tr>
		<td><input type="submit" name="registrieren" size="20"
			value="Registrieren"></td>
	</tr>
</table>
<input type="checkbox" name="agb" id="idagb" size="20" value=""
	style="text-align: left;">Sie haben unsere <a href="agb.php" id="agb"
	onclick="index();return false">AGB</a> gelesen und sind damit
einverstanden</form>
</body>
</html>
 
Zuletzt bearbeitet:
Hi,

zunächst möchte ich dich auf einen Tippfehler hinweisen: die Methode getElementById wird mit grossem B geschrieben.

Desweiteren würde ich die Suche nach gültigen Zeichen mit Hilfe von regulären Ausdrücken realisieren.

Beispiel:
Code:
function chkFormular() {
  if (document.register.username.value == "") {
    document.getElementById("usernameField").innerHTML = "Mindestens 6 Zeichen und keine */%";
    var fehlerusername = 1;
    var fehler = 1;
    return false;
  }

  // Wert des Textfeldes mit Hilfe eines regulären Ausdrucks testen
  if(document.register.username.value.search(/[^A-Za-z0-9_-]/) != -1){
    alert("Ungültiges Zeichen enthalten");
    var fehlerusername = 1;
    var fehler = 1;
    return false;
  }

  return true;
}
Ciao
Quaese
 
Übrigens musst du beim Array $alterzahlen nicht alles manuell eingeben, du kannst die Funktion [phpf]range[/phpf] verwenden:
PHP:
$alterzahlen = range(16, 99);

Da du $alterzahlen sowieso nur einmal - und zwar in dem [phpf]foreach[/phpf] - verwendest, kannst du es gleich darein packen:
PHP:
foreach (range(16, 99) as $var){
			echo '<option value="'.$var.'">'.$var.'</option>';
		}
 
Zurück