Rolf B: Regexp + Tabelle

Beitrag lesen

Hallo Figgifiggi,

Fehler 1: Deine Table beginnt, endet aber nicht. Sie enthält auch keine Rows. Was soll deine Schleife also verarbeiten? Aber ich nehme man an, dass Du das beim Posten weggelassen hast.

Fehler 2: Dein input Element hat kein Label. Placeholder können keine Labels ersetzen.

<label for="street">Adresse: </label>
<input id="street" type="text" placeholder="Straße Hausnummer PLZ Ort Land">

Fehler 3: Deine Adress-Regex ist untauglich. Wenn es eine Postanschrift sein soll, sind auch Postfachadressen oder Großkunden-PLZ möglich. Wenn es nicht Deutschland ist, ist eine 5-stellige PLZ falsch. Und in Mannheim ist sogar die Straße falsch. Google mal nach "Adresse Mannheim" und staune. Hausnummer allein reicht übrigens nicht bei der Straße, in Berlin hast Du Angaben wie 3. Hof oder so. In Bergisch Gladbach ist auch der Ort falsch. Kurz und schlecht: Lass das mit der Regex. Du kannst nicht alle Fälle erfassen. In England sind Adressen oft eher Wegbeschreibungen als formale Adressen.

Und darum:

Fehler 4: Wenn Du Struktur in Adressen bringen willst, mache 4 Eingabefelder. Straße, PLZ, Ort, Land. Lass die Finger von Plausiprüfungen, die Du nicht überschauen kannst. Erzwinge keine Straße - eine größere Firma hat ggf. nur PLZ und Ort.

Wenn Du das nicht willst, mach kein input-Element, sondern eine textarea, damit er Kunde die Adresse so eingeben kann wie sie für seine Bedingungen richtig ist.

Fehler 5: Benutze CSS für das Aussehen deiner Seite, keine inline Styles. Eine Tabelle, bei der jede zweite Zeile eine andere Hintergrundfarbe haben soll, lässt sich mit der nth-child Pseudoklasse ganz einfach im CSS erzeugen:

Das folgende HTML ist unvollständig und zeigt nur die relevanten Teile.

<head>
<style>
  tr:nth-child(even) { background-color: red; }
</style>
</head>
<body>
<table>
<tr><td>weiß</td></tr>
<tr><td>rot</td></tr>
<tr><td>weiß</td></tr>
<tr><td>rot</td></tr>
</table>
</body>

Und eigentlich wollte ich Dir ja noch das constraint validation API für selbstgemachte Prüfungen andienen, mit denen Du die :valid Pseudoklasse eines Elements steuern kannst, aber das streikt bei mir mal wieder. Das Feld wird zwar ungültig, aber die Fehlermeldung bekomme ich nicht. @Gunnar Bittersmann - gibt's da einen Trick zu beachten?

Rolf

--
sumpsi - posui - clusi