Hi,
folgendes Problem:
Ich habe ein Eingabefeld, welches ich darauf testen will, dass nur Buchstaben eingegeben wurde oder das Feld ganz leer gelassen wurde.
Dafür möchte ich den regulären Ausdruck und den Fehlertext direkt in den input-Tag schreiben und diese dann per getAttribute() in eine Variable schreiben. Das klappt auch (habe ich mit alert getestet).
Allerdings klappt die Anweisung feld.value.search(pattern) nicht. Trotz reiner Buchstabeneingabe wird der alert() ausgegeben. Wenn ich dagegen feld.value.search(/[1]+$/) angebe, funktioniert es.
Aber in der Variablen steht doch genau dieser Ausdruck drin?! Muss ich die Variable vorher umwandeln oder wie oder was? Komme hier nicht weiter und bitte um Hilfe.
Danke&Grüße
Hier der Code:
<html>
<head></head>
<body>
<script type="text/javascript">
function checkField(feld) {
var pattern = document.getElementsByName(feld.name)[0].getAttribute("pattern");
var errorMsg = document.getElementsByName(feld.name)[0].getAttribute("errorMsg");
// alert(pattern);
// alert(errorMsg);
if (feld.value.search(pattern) == -1 && feld.value != "")
{
alert(errorMsg);
}
}
</script>
<form>
<input type="text" name="vorname" errorMsg="Nur Buchstaben eingeben oder leer lassen!" pattern="/[2]+$/" onBlur="checkField(this)">
</form>
</body>
</html>