String auf Nummern prüfen

Prophet05

Erfahrenes Mitglied
Ich möchte einen String darauf testen ob er nur aus zahlen besteht bis jetzt habe ich diese Script es Funktioniert leider aber nicht:
Code:
function ButtonAktiv(name)
 			   {
 		    		var string = document.getElementByName(name).value;
 					
 					if (!isNaN(string))
 		    		    document.getElementById('senden').setAttribute('disabled', 'false');
 					else
 		    		    document.getElementById('senden').removeAttribute('disabled', 'true');
 				}
das wende ich so auf mein html an:
Code:
<input type="text" size="3" maxlength="3" name="breite" value="200" OnChange="ButtonAktiv('breite');">

Ich würde gerne wissen warum es nicht Funktioniert oder ob es eine bool isNumber(); funktion oder sowas gibt.

mfg Prophet05
 
Hi;
ich hab einmal eine neue funktion gemacht, die zwar nicht deiner entspricht aber den Sinn erfüllt

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript">
function nan(eingabe)
{
	if(isNaN(eingabe))
	{
	alert(eingabe+" ist keine Zahl!\nBitte geben sie nur eine Zahl ein.");
	document.forms[0].elements[0].focus();
	}
}
</script>
<title>Script</title>
</head>
<body>
<div>
 <form action="" method="post">
  <p><input name="breite" type="text" size="3" maxlength="3" value="200" />
  <input type="submit" onmouseover="nan(this.form.breite.value)" value="Prüfen" /></p>
 </form>
</div>
</body>
</html>

Greetz
 
Funktioniert leider beides nicht in verbindung mit meiner Funktion. Habe ich das JS an sich den Richtig geschrieben

mfg Prophet05
 
Ok;

ich habe dein Script jetzt verbessert

1. habe ich getElementByTagName() (die methode heisst getElementsByTagName()) durch getElementById() ersetzt
2. bei der setAttribute() Methode fehlte der Wert, du hast nur das Attribut angegeben

ich glaub das wars auch schon :)

->>

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript">
function ButtonAktiv(id)
	{
 	var string = document.getElementById(id).value;
 					
	if (!isNaN(string)){
	document.getElementById('senden').setAttribute('disabled','disabled', 'false');
	}
	else{
	document.getElementById('senden').removeAttribute('disabled','disabled', 'true');}
 	}
</script>
<title>Script</title>
</head>
<body>
<div>
 <form action="" method="post">
  <p><input id="a" type="text" size="3" maxlength="3" value="200" onchange="ButtonAktiv('a')" />
  <input id="senden" type="submit" value="Prüfen" /></p>
 </form>
</div>
</body>
</html>

Viel Spass damit;

Greetz
 
Also ich habe beide geposteten Funktionen mit IE 6 und FF 1.02 getestet und beide funktionieren da auch...
 
Code:
var string = document.getElementByName(name).value;

Es gibt keine Methode "getElementByName()" ... die Methode nennt sich "getElementsByName()" ....ein name-Attribut kann mehrfach vergeben werden... diese Methode liefert dir alle Elemente mit diesem Namen in einem Array.

Wenn du jeweils nur ein Element mit dem betreffenden Namen im Dokument hast, sollte dich
Code:
var string = document.getElementsByName(name)[0].value;
..zum Ziel führen(die Vorschläge von T3ch sollten auch funktionieren... wirf im Zweifelsfall mal einen Blick in die Javascript-Konsole und poste die Fehlermeldung/en)
 
Ich habe das alles Versucht aber will einfach nicht Funktionieren. Fehlermeldungen habe ich kaum bekommen er hat nur gesagt document.getElementsByName('...')[0].setAttribut('disabled', 'true'); hätte keinen wert
 
Wieviel Fehlermeldungen soll es denn geben...eine reicht aus, damit die Skriptausführung abgebrochen wird.

Ich weiss jetzt nicht, warum du auf einmal übr den Namen auf das zu änderndeElement zugreifst... ursprünglich hast du es über die ID ('senden')

Wieauchimmer....
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function ButtonAktiv(name)
 			   {
 		    		var string = document.getElementsByName(name)[0].value;
 					
 					if (!isNaN(string))
 		    		    document.getElementById('senden').setAttribute('disabled', 'false');
 					else
 		    		    document.getElementById('senden').removeAttribute('disabled', 'true');
 				}
//-->
</script>
</head>
<body>
<input type="text" size="3" maxlength="3" name="breite" value="200" OnChange="ButtonAktiv('breite');">
<input id="senden"type="submit">
</body>
</html>

funktioniert problemlos, genauso wie die beiden Beispiele von t3ch(beim 2. hatte er nur die Sachen vertauscht...der Button wird deaktiviert, wenn eine Zahl eingegeben wurde.. in der hochgeladenen Sache ist es korrigiert)


Um Missverständnissen vorzubeugen... das ganze erfolgt nicht direkt bei der Eingabe im Textfeld... sondern erst, wenn das Textfeld nach der Änderung verlassen wird.

Wenn es gleich bei der Eingabe passieren soll, verwende bspw. onkeyup.
 

Neue Beiträge

Zurück