kEv*: hoch-runter zählen

Hallo liebe SELFHTMLer,

etwas recht simples möchte ich gern mit Javascript realisieren.
Zwei Button zum hoch - runterzählen eines Wertes, welcher sichtbar in einer Textbox dargestellt wird.

Hier der code im head-Teil des html Dokumentes.

function init(){
  document.form1.axis.value = 4;
  }

function change(direction,value){
  if (direction == 0){
    alert ("Wert vorm rechnen:" + document.form1.axis.value);
    var temp = document.form1.axis.value + 1;
    alert ("Wert NACH rechnen:" + temp);
  }
  else{
    alert ("Wert vorm rechnen:" + document.form1.axis.value);
    var temp = document.form1.axis.value - 1;
    alert ("Wert NACH rechnen:" + temp);
  }
return temp;
}

function test (direction){
  var wert = change(direction);
  document.form1.axis.value = wert;
}

Das runterzählen funktioniert, nur bei Höchzählen erhöht das Script nicht um eins, sondern hängt die eins an den vorhandenen Wert an.

Kann mir einer sagen Warum?

LG
kev1n

--

SELFCODE:
sh:( fo:| ch:? rl:° br:^ ie:{ mo:| va:) de:] zu:) ss:| ls:[ js:|
---
  1. Hi,

    var temp = document.form1.axis.value + 1;

    Das runterzählen funktioniert, nur bei Höchzählen erhöht das Script nicht um eins, sondern hängt die eins an den vorhandenen Wert an.

    Kann mir einer sagen Warum?

    Weil der Inhalt des value-Attributes immer vom Typ String ist.

    • ist sowohl der Additions- als auch der Stringverkettungsoperator in Javascript. Also haben wir hier String + 1 - wobei die 1 automatisch zum String "1" konvertiert wird, und dann wird das ganze verkettet.

    Wandle also den value-Inhalt zuerst in eine Zahl um, und addiere dann eins drauf. Dazu kannst du entweder parseInt nutzen - oder einfach erst mit 1 multiplizieren - dabei wird der String automatisch in eine Zahl umgewandelt.

    var temp = document.form1.axis.value * 1 + 1;

    MfG ChrisB

    1. Hallo liebe SELFHTMLer,

      danke.
      Die Lösung ist parseInt() ...

      Danke

      LG
      kev1n

      --

      SELFCODE:
      sh:( fo:| ch:? rl:° br:^ ie:{ mo:| va:) de:] zu:) ss:| ls:[ js:|
      ---