max-Knopf

Asteria

Mitglied
Nabend zusammen ! :)

Vor'm Schlafengehen hab' ich noch fix
'was bei dem ich Hilfe bräuchte ! :)

Funktion sieht wie folgt aus:
Code:
function maxUnit (nameInput, maxCount)
{
 intUnit = document.getElementsByName(nameInput).value ;
 if( intUnit != 0 ) document.getElementsByName(nameInput).value = "0" ;
 if( intUnit == 0 ) document.getElementsByName(nameInput).value = maxCount ;
}

Aufgerufen wird die Funktion über:
Code:
<img src="images/max_button.gif" title="Max." width="15px" height="15px" onClick="javascript:maxUnit('infantry1','17');" />
<input type="text" maxlength="8" size="6" name="infantry1" id="eingabe1" />

Die Werte werden als String übergeben
und auch als String wohl zurückgegeben oder?!
Per alert()-Funktion hab' ich getestet, der value
scheint sich zwar zu ändern, aber auf dem Bildschirm
sieht man leider absolut nix davon :(

Jemand Ideen? :)
Beste Grüße und vielen Dank ! :)
 
Hi,

getElementsByName liefert ein Array zurück. Deshalb musst du über den Index auf dessen Elemente zugreifen.

Ausserdem solltest du mit Number den Wert (value) in eine Zahl konvertieren.

Beispiel:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<script type="text/javascript">
<!--
function maxUnit (nameInput, maxCount)
{
 intUnit = Number(document.getElementsByName(nameInput)[0].value);
 if( intUnit != 0 ) document.getElementsByName(nameInput)[0].value = "0" ;
 if( intUnit == 0 ) document.getElementsByName(nameInput)[0].value = maxCount ;
}
//-->
</script>
</head>
<body>
<img src="images/max_button.gif" title="Max." width="15px" height="15px" onClick="javascript:maxUnit('infantry1','17');" />
<input type="text" maxlength="8" size="6" name="infantry1" id="eingabe1" />
</body>
</html>
Ciao
Quaese
 
Hallo Asteria,

übergebe an die Funktion nicht den Namen des Textfeldes sondern die ID und verwende dann anstatt getElementsByName die Funktion getElementById.

Dann klappt alles wie du es haben willst.

Ansonsten musst du es so schreiben:

HTML:
document.getElementsByName(nameInput)[0].value

Es muss immer als Array angesprochen werden auch wenn es diesen Namen nur einmal gibt (siehe auch hier).
 

Neue Beiträge

Zurück