PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   [JS] Zahl verändern durch Button (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/51998-javascript-zahl-veraendern-durch-button.html)

Realmaker 18-03-2005 19:14

Oh, tut mir leid, das muss ich übersehen haben :oops:
Ich hab da was gefunden, was man Radiobuttons einen Index geben kann, nur möchte ich ja Textfelder benutzen... Ich weiß im Moment wirklcih nicht, wie ich da rangehen soll :(

wahsaga 18-03-2005 20:02

der zugriff auf formularfelder lässt sich nicht nur so:
Code:

document.formularname.feldname.xyz
machen, sondern auch beispielsweise so:
Code:

document.forms[formularname].elements[feldname].xyz

Realmaker 18-03-2005 23:43

Code:

function berechnen(i)
{
document.form.elements[i].value=document.form.elements[i].value-1;
}
...
<input type="text" value="2" name="1">
<input type="button" name="button" value="<" onClick="berechnen(0);"></button>

So geht es so, wie ich es haben will :)
Und vielen vielen Dank für eure Hilfe!

Realmaker 19-03-2005 13:26

Ok, das Problem geht weiter:
Wenn ich den Wert des Feldes erhören statt verringern will, wird an die Zahl, die da von vornherein ist, einfach eine 1 drangehängt :(

wahsaga 19-03-2005 13:37

Zitat:

Original geschrieben von Realmaker
Wenn ich den Wert des Feldes erhören statt verringern will, wird an die Zahl, die da von vornherein ist, einfach eine 1 drangehängt
wenn du in JS das value eines formularfeldes ausliest, ist das zunächst mal immer ein string.

also wird bei + 1 hier das + als der stringverkettungsoperator angesehen.
und "123" + 1 ergibt dann nun mal "1234"; die 1 wird automatisch in einen string umgewandelt.
(dass es bei - 1 klappt liegt daran, dass hier keine verwechslung bzgl. des operators möglich ist, für strings gibt es den operator - nicht.)

um das zu vermeiden, musst du das, was du aus dem value des formularfeldes ausliest, erst mal in eine zahl umwandeln.
parseInt() bzw. parseFloat() helfen dir dabei weiter.

(alternativ könnte man auch den string zuerst mit 1 "multiplizieren" - weil auch * kein stringoperator ist, würde auch hierdurch der string zunächst in eine zahl mit gleichem wert umgewandelt [sofern möglich]. aber das ist der "unsaubere" weg, die beiden genannten javascript-methoden sind zu bevorzugen.)

Realmaker 19-03-2005 13:55

Ah, hab verstanden, hab es so gelöst:
Code:

document.handeln.elements[i].value=document.handeln.elements[i].value*1+1
Danke :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:10 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG