Robjok: nochmal Parameterübergabe an funktion

Hai, *all
leider is in meinem skript noch ein fehler
hier ein sourceauszug

<SCRIPT TYPE="TEXT/JAVASCRIPT" LANGUAGE="JAVASCRIPT">
var XWERT=" "
var awert= " "
var OP=" "
var QSET= " "
function SETZE() {QSET="J"; return XWERT;}

function MERKE(WERT) {XWERT = WERT;}

function ZEIGMAL(OP) {IF(OP != XWERT);  {awert=OP; OP=XWERT}; RETURN(OP);}

function SETAWERT(awert) {IF(awert != XWERT && QSET == " "); {OP=awert}
ELSE ;
  {OP=XWERT};
QSET=" "; RETURN(OP);
}
</SCRIPT>

...

<input type="TEXT" NAME="OP44" VALUE="44=test" SIZE="13" READONLY onClick="MERKE('44')">

...

<input type="TEXT" NAME=opt00001 VALUE="  " SIZE="2" MAXLENGTH="2"
     ONCLICK="this.form.opt00001.value=SETZE()"  ONMOUSEOVER="this.form.opt00001.value=ZEIGMAL(this.form.opt00001.value)"

ONMOUSEOUT ="this.form.opt00001.value=SETAWERT(awert)">

also, merk dir den angeklickten wert
zeig ihn wen die maus in dem feld steht,
setze ihn in das feld bei klick
lasse den alten wert in dem feld bei maus-raus
die inputs sind nur exemplarisch, eigentlich sind es über 20 !

Fehler msg bei onmouseover:
zeile 11, 23, obj erwartet   (zeile 11 ist funktion zeigmal)

Danke
Robi

  1. Hallo Robjok,

    hinter "if (bedingung)" kommt kein Strichpunkt, weil sonst eine leere Anweisung ausgeführt wird, falls die bedingung wahr ist. Auch hinter Anweisungsblöcken kommt kein Strichpunkt, dafür aber idealerweise hinter der letzten Anweisung eines Anweisungsblocks (muss aber AFAIK nicht unbedingt notiert werden). Also so:

    function ZEIGMAL(OP) {IF(OP != XWERT)  {awert=OP; OP=XWERT;} RETURN(OP);}

    function SETAWERT(awert) {IF(awert != XWERT && QSET == " ") {OP=awert;}
    ELSE
      {OP=XWERT;}
      QSET=" "; RETURN(OP);
    }

    Um das ganze extreeeem übersichtlicher zu gestalten, hat vor vielen Jahren mal jemand den Zeilenumbruch erfunden ;-). Und auch Kleinbuchstaben sind in JavaScript übrigens erlaubt:

    function ZEIGMAL(OP) {
      if (OP != XWERT) {
        awert = OP;
        OP = XWERT;
      }
      return OP;
    }

    function SETAWERT(awert) {
      if (awert != XWERT && QSET == " ")  OP = awert;
      else  OP = XWERT;

    QSET = " ";
      return OP;
    }

    So sollten zumindest keine Fehlermeldungen auftreten.

    Viel Erfolg,
    Robert

    1. Viel Erfolg,
      Robert

      Danke, klappt prima
      (die strichpunkte hab ich gesetzt, da mein IE mir das gesagt hat,
      der eigentliche fehler war (zu dem zeitpunkt) ein RETURN OP, statt RETURN(OP))

      Die Robert's sind doch die besten
      Robi