JavaScript Versuch auf AlphaNum zu testen...

BastetFurry

Shodans Avatar
ID: 43094
L
5 Mai 2006
169
22
Sitze gerade hier und versuche in einem Inputfeld nur Alphanumerische Zeichen durch gehen zu lassen.
Das ganze sieht so aus:
Code:
JS Code:
	function checktextinput(c)
	{
// Ja, das würde nur auf a bis z prüfen... ;)
		if ((c.value >= "a") && (c.value <= "z")) 
		{
			return true;
		}
		else
		{
			return false;
		}
	}

HTML:
<input name="username" type="text" size="20" class="myeditline" onkeyup="return checktextinput(this)">
Selbst wenn ich jetzt an den Anfang meiner Funktion ein return false; setze lässt der Browser jedes Zeichen durch, ein Test mit alert beweist aber das die Funktion aufgerufen wird.
Irgendeine Idee?
 
Bei onkeyup ist bereits schon längst alles passiert, und du kannst den change des Elements nicht mehr verhindern.

Meiner Meinung nach musst du ein onkeypress dafür verwenden - dabei den gedrückten Key abfragen und manuell appenden/inserten.
 
neija der Code hat viele gedankliche Fehler.
Der größte ist die Validierung des Strings, in deinem Textfeld hast du einen String, also mehrere Buchtstaben, die kannst du aber nicht mit einem einzigen Buchstabenvergleich prüfen.

Du musst also deinen Handler auf onkeydown binden, dann das automatisch übergebene event-objekt betrachten, den keyCode auslesen und sicherstellen, dass der Code zwischen den ASCII-Werten von A und Z liegt.
Dann natürlich ein false returnen oder das event stoppen wenn der Buchstabe nicht stimmt.

in etwa so:
Code:
function checkTextInput(event) {
  return String.fromCharCode(event.keyCode).match(/^[a-z0-9]$/i) != null;
}

<input type=”text” name=”mytext” onkeydown=”return checkTextInput(event)”>
 
Zuletzt bearbeitet: