AndreD: bei onFocus & onBlur DIREKT Javascript ohne Kennzeichnung rein?

Beitrag lesen

Hallo,

Darf ich bei onFocus  und OnBlur ...

AKAIK (bin aber nicht der Javascript-König) sollte das aufs gleiche rauskommen und ist auch nicht explizit verboten. Bei Deinem Beispiel bleibt ja durch die Einfachkeit die Übersicht gewahrt.
Für meine Begriffe ist es allerdings im Hinblick auf die Wartbarkeit, Übersichtlichkeit und der sauberen Strukturierung sinnvoller die Operationen in eine Funktion zu schreiben und diese über den Event-Handler aufzurufen.

<input type="text" onFocus="if(this.value=='a'){this.value=''};" onBlur="if(this.value==''){this.value='a'};" value="a" size="5">

könnte man z.B so lösen:

<...>
<head>
<script type="text/javascript">

function decide(wert)
{
  if(wert == '')
  {
    wert = 'a';
  }
  else
  {
    wert = '';
  }

return(wert);
}

</script>
</head>
<...>
<input type="text" onFocus="decide(this.value);" onBlur="decide(this.value);" value="a" size="5">
<...>

Evt. gibt es eine bessere Lösung um die Funktion flexibler zu gestalten in dem man den zu vergleichenden Wert ("a") der Funktion mit übergibt. So könnte man die Funktion für mehrere input-Felder verwenden. In der Art etwa:

<...>
<head>
<script type="text/javascript">

function decide(wert, wert2)
{
  if(wert == '')
  {
    wert = wert2;
  }
  else
  {
    wert = '';
  }

return(wert);
}

</script>
</head>
<...>
<input type="text" onFocus="decide(this.value, '');" onBlur="decide(this.value);" value="a" size="5">
<...>

Hab das jetzt mal nicht getestet und soll nur als Anregung dienen, die Grundausage meines Posting ist halt das Du am besten immer solche Operationen aus den oben genannten Gründen in Funktionen packst.

Grüsse AndreD