Arash Yalpani: onChange in <input type="hiden">!?

Hallo Forum,

ich versuche gerade einen onChange-Handler in einem hidden-input feld ans laufen zu bekommen:

<input type="hidden" name="test" value="3" onChange="alert('klappt!')">

Den Wert des Feldes ändere ich über JS - das klappt auch definitiv. Aber der onChange-Handler reagiert einfach nicht.
Hat irgendwer eine Ahnung, ob dies ein bekannter Bug ist? Laut SelfHTML sollte onChange eigentlich in _allen_ input-tags definiert sein, oder?

Danke + schöne Grüsse,
Arash

  1. Hallo Forum,

    ich versuche gerade einen onChange-Handler in einem hidden-input feld ans laufen zu bekommen:

    <input type="hidden" name="test" value="3" onChange="alert('klappt!')">

    Den Wert des Feldes ändere ich über JS - das klappt auch definitiv. Aber der onChange-Handler reagiert einfach nicht.
    Hat irgendwer eine Ahnung, ob dies ein bekannter Bug ist? Laut SelfHTML sollte onChange eigentlich in _allen_ input-tags definiert sein, oder?

    Danke + schöne Grüsse,
    Arash

    hi, onchange ist in selects zu benutzen und heißt, der user hat eine andere option ausgesucht.
    du musst den alten mit dem neuen wert vergleichen :)

    1. hi, onchange ist in selects zu benutzen und heißt, der user hat eine andere option ausgesucht.
      du musst den alten mit dem neuen wert vergleichen :)

      Hi,

      das stimmt (zum Glück) nicht ganz. Hier ein Stück aus SelfHTML:

      "Nach HTML 4.0 und JavaScript 1.2 (Netscape) erlaubt in folgenden HTML-Tags:
      <input> <select> <textarea>"

      Also geht es _nicht nur_ mit select-boxen sondern auch mit input-feldern. Mit einem <input type="text name="text" onChange="alert()"> klappt es auch hervorragend. Nur bei den "hidden"-input-feldern weigert er sich.

      Trotzdem vielen Dank,
      Arash

      1. hi,
        mal anders gefragt, wozu brauchst du denn onChange Handler? Es ist in diesem Fall total unnötig und unsinnig einem versteckten Formularteil bei Änderung seines Wertes weitere Funktionen zuzuweisen. Warum startest du die weitergehende JavaScript Funktion über die Funktion mittels derer du den Wert des Items änderst?
        Gruß
        Martin

        1. hi,
          mal anders gefragt, wozu brauchst du denn onChange Handler? Es ist in diesem Fall total unnötig und unsinnig einem versteckten Formularteil bei Änderung seines Wertes weitere Funktionen zuzuweisen. Warum startest du nicht die weitergehende JavaScript Funktion über die Funktion mittels derer du den Wert des Items änderst?
          Gruß
          Martin

        2. hi,
          mal anders gefragt, wozu brauchst du denn onChange Handler? Es ist in diesem Fall total unnötig und unsinnig einem versteckten Formularteil bei Änderung seines Wertes weitere Funktionen zuzuweisen. Warum startest du die weitergehende JavaScript Funktion über die Funktion mittels derer du den Wert des Items änderst?

          Hallo Martin,

          Ich zeige in einem Formular einen Link an, abhängig davon ob der Benutzer etwas im Formular geändert hat oder nicht. Bestimmte Felder im Formular (das sind die hidden-input-Dinger) werden über JS in Popup-Fenstern geändert. Sobald das Popup-Fenster einen solchen Wert verändert hat möchte ich, dass der onChange-Handler aufgerufen wird.

          Wie mir scheint ist dies aber nicht möglich.

          Bei <input type="checkbox" onChange="blabla()"> fkt. es übrigens genausowenig.

          ALso benutze ich für checkboxen den onClick-Handler und das Problem mit den hidden-input-feldern habe ich nun auch anders gelöst.

          Vielen Dank aber für die Hilfe.
          Schönes Wochenende alle miteinander,
          Arash

  2. Hi,

    Den Wert des Feldes ändere ich über JS - das klappt auch definitiv. Aber der onChange-Handler reagiert einfach nicht.
    Hat irgendwer eine Ahnung, ob dies ein bekannter Bug ist? Laut SelfHTML sollte onChange eigentlich in _allen_ input-tags definiert sein, oder?

    das ist _kein_ Bug, sondern absolut normal. Ändere den Wert mal in einem <input type="text"> mittels JavaScript - das onChange-Event wird auch stumm bleiben.

    Events feuern ausschließlich bei Benutzer-Interaktion. onClick reagiert nicht bei click(), onSubmit nicht bei submit() usw., denn an dieser Stelle hast Du eh die Macht. Es ist davon auszugehen, daß Du weißt, was Du tust, so daß die Events, die den Hintergrund haben, Dich auf eine Aktion aufmerksam zu machen, gar nicht reagieren _dürfen_.

    Rufe die Funktion in dem JavaScript auf, das auch das Eingabefeld ändert. Genau so ist es gedacht, und Du wirst auch keine andere Lösung finden.

    Cheatah

    1. das ist _kein_ Bug, sondern absolut normal. Ändere den Wert mal in einem <input type="text"> mittels JavaScript - das onChange-Event wird auch stumm bleiben.

      Hallo Cheatah,

      vielen Dank für die Info! Ich hab es jetzt zwar (anders) gelöst hatte aber nicht ganz verstanden warum es nicht ging. Jetzt weiss ich es.

      Schönes Wochenende,
      Arash