HTML Attribut onmouseup:
Auszuführender JavaScript-Code bei Loslassen einer Maustaste

von Thomas Salvador.

Beispiel

Ein Formular mit Ausgabe von onmouseup und anderen Maus-Events:

<html><head><title>onmouseup-Test</title></head><body>
<form name="onmouseupdemo" action="#">
  <input type="text" size="55" name="inputfeld"
    onmousedown="this.value='Maustaste gedrückt';"
    onmouseup  ="this.value='Maustaste losgelassen';"
    onmousemove="this.value='Maus bewegt';"
    onmouseover="this.value='Auf Feld bewegt';"
    onmouseout ="this.value='Aus Feld bewegt';"
    ondblclick ="this.value='KlickKlick';"
    onclick    ="this.value='Klick';" 
  />
</form>
</body></html>

Anwendung

onmouseup wird ausgeführt, wenn eine Maustaste losgelassen wird.

Besonders häufig wird dies genutzt, wenn man eine Drag-Funktion realisieren möchte. Hierbei muss man mit onmousedown erkennen, dass die Maustaste gedrückt wurde und dann auf die Bewegung der Maus mit onmousemove reagieren. onmouseup beendet dann den Drag.

Im obigen Beispiel wird ein kleines Formular mit Nur-Lese-Feld zur Ausgabe definiert. Es ist mit den verschiedenen onmouse*-Events und den Klick-Events belegt und gibt jeweils eine entsprechende Reaktion aus.

Hinweise

  • Javascript sollte zur Optimierung eingesetzt werden. Stellen Sie sicher, dass Ihre Navigation und Ihre Formulare auch ohne Javascript noch funktionieren.

Grundsätzliches zur Nutzung von JavaScript-Events in HTML

Die meisten Events sind generell und an praktisch allen HTML-Tags nutzbar. Einige andere sind nur mit den sinnhaft passenden Tags möglich. Mitunter wertet jedoch ein Browser nicht alle Möglichkeiten aus.

Der Wert des Event-Attributes onmouseup ist ausschließlich JavaScript – entsprechend gelten die JavaScript-Syntax-Regeln. Ich empfehle nur kurze Scripte direkt zu platzieren. Erstellen Sie sonst eine Funktion und lassen diese dann durch onmouseup aufrufen.

Grundsätzlich wird der Event vor dem HTML-Tag ausgeführt. Der JavaScript-Code sollte generell einen Rückgabewert erzeugen, true oder false. Per Voreinstellung wird true angenommen. Der Rückgabewert beantwortet die Frage, ob der HTML-Tag noch ausgeführt werden soll. Dabei bedeutet false, dass der Tag nicht mehr ausgeführt werden soll (was der häufigste Fall ist).

In dieser Form ist es möglich, JavaScript einzuführen und zu nutzen, ohne nicht-JavaScript-fähige Browser auszuschließen.

Unterstützendes Hinzufügen von JavaScript

Beispiel: HTML-Tag abbrechen:

<a href="kein-javascript.html" 
  onclick="self.location.href='javascript.html';return false;">klick</a>

Mit aktivierter JavaScript-Unterstützung wird zu javascript.html verzweigt. Da die Rückgabe false ist, wird der HTML-Verweis nicht weiter beachtet.

Ohne aktivierte JavaScript-Unterstützung wird zu kein-javascript.html, da onclick vom Browser gar nicht ausgewertet wird.

Beispiel: HTML-Tag ausführen lassen:

<a href="naechste-seite.html" 
  onclick="alert('weiter geht es...');">klick</a>
<a href="naechste-seite.html" 
  onclick="alert('weiter geht es...');return true;">klick</a>

Hier wird mit und ohne JavaScript-Unterstützung zu naechste-seite.html verzweigt. Ist JavaScript aktiviert, gibt es zusätzlich eine Meldung bevor verzweigt wird. Die Verzweigung selbst wird hier in jedem Fall über HTML realisiert.

Nutzen von JavaScript

Neben der schon gezeigten Optimierung mit JavaScript ist die Überprüfung von Formularen eine der wichtigsten Einsatzgebiete.

Beispiel:

<form name="formular" method="post" action="verarbeite.php"
  onsubmit="return erlaubt( );">
..
</form>

Was passiert: Beim Absende-Versuch (Klick auf den Submit-Button) wird eine JavaScript-Funktion (hier: erlaubt) aufgerufen. In dieser Funktion kann der Betreiber zum Beispiel prüfen, ob alle notwendigen Felder ausgefüllt wurden. Ist alles ok, könnte er true liefern, sonst false. Letzteres würde das Absenden abbrechen.

Der Vorteil ist, dass so die wichtigsten Prüfungen bereits gemacht werden können, ohne dass überhaupt etwas an den Server übermittelt wurde.

Natürlich muss das auch noch mal auf dem Server (hier: in verarbeite.php) geprüft werden. Für Besucher ohne JavaScript wird die Prüfung vor Absenden ja nicht ausgeführt und Daten sofort übermittelt.

Verfügbare Javascript Events in HTML

AttributBeschreibung
onblurAuszuführender Javascript-Code bei Fokusverlust
onchangeAuszuführender Javascript-Code bei Wertänderung
onclickAuszuführender Javascript-Code bei Klick
ondblclickAuszuführender Javascript-Code bei Doppelklick
onerrorAuszuführender Javascript-Code bei Auftreten eines Fehlers
onfocusAuszuführender Javascript-Code bei Fokuserhalt
onkeydownAuszuführender Javascript-Code bei Drücken einer Taste
onkeypressAuszuführender Javascript-Code bei gedrückt gehaltener Taste
onkeyupAuszuführender Javascript-Code bei Loslassen einer Taste
onloadAuszuführender Javascript-Code, wenn alle Frames geladen wurden
onloadAuszuführender Javascript-Code, wenn Dokument fertig geladen wurde
onloadAuszuführender Javascript-Code, wenn Grafik/Applet fertig geladen wurde
onmousedownAuszuführender Javascript-Code bei Drücken einer Maustaste
onmousemoveAuszuführender Javascript-Code, wenn die Maus bewegt wird
onmouseoutAuszuführender Javascript-Code, wenn die Maus das Element verlässt
onmouseoverAuszuführender Javascript-Code, wenn die Maus auf das Element bewegt wird
onmouseupAuszuführender Javascript-Code bei Loslassen einer Maustaste
onresetAuszuführender Javascript-Code bei Löschen eines Formulars
onselectAuszuführender Javascript-Code bei Textselektierung
onsubmitAuszuführender Javascript-Code bei Absenden eines Formulars
onunloadAuszuführender Javascript-Code, wenn alle Frames entfernt wurden
onunloadAuszuführender Javascript-Code, wenn Dokument entladen (geschlossen) wurde