• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

jquery events

musclebreast

Mitglied
Hallo,

ich habe ein inputfeld, welches aber nicht durch den Nutzer befüllt wird, sonder ich im Hintergrund setze. Ich will jetzt aber bei einer Änderung, dass ein EventHandler zuschlägt. Ich habe es mit dem Change Event versucht, aber dies geht nur wenn ich direkt (optisch) im Input feld was setze. Es geht aber nicht wenn ich mit Javascript den Value setze. Ich habe die Events schon durchgescheschaut, aber keinen guten gefunden. Habt ihr einen Tipp für mich?

LG,

LAra
 
Javascript weiss doch, wann es den Wert setzt, also einfach in der nächsten Zeile das schreiben, was du im OnChange schreiben möchtest.
 
So auf Anhieb fällt mir auch kein passendes Event ein, aber wenn man eine JS-Funktion schreibt, die den Value eines Input-Feldes verändert, kann man einen Callback anhängen, der darauf reagiert.
 
Moin,
du könntest das event triggern.

Entweder $( ".inputfeld" ).change() oder $( ".inputfeld" ).trigger("change")

Dadurch wird das Change ereignis ausgelöst.
$( ".inputfeld" ).change(function() {
alert( ".inputfeld wurde verändert..." );
});

MfG
 
Change wird nur getriggered, wenn das Element den Fokus verliert. Im obigen Fall erhält es aber nicht mal den Focus. Allerdings kann man ein Custom-Event schreiben, welches direkt auf die mittels JS ausgeführte Veränderung des Input-Values reagiert. Im einfachsten Fall könnte das etwa so aussehen:

Code:
$.fn.extend({
  customEvent: function() {
    return this.each(function() {
      console.log(this.value);
    });
  }
});

$("button").click(function(){
  $("input:text").val("Hello World").customEvent();
});
 
Change wird nur getriggered, wenn das Element den Fokus verliert. Im obigen Fall erhält es aber nicht mal den Focus. Allerdings kann man ein Custom-Event schreiben, welches direkt auf die mittels JS ausgeführte Veränderung des Input-Values reagiert. Im einfachsten Fall könnte das etwa so aussehen:
Wie ich oben schrieb, mit .change() ohne parameter trigger ich das event aber von Hand, der Umweg über ein custom event ist völlig unnötig.
http://jsfiddle.net/F32wF/

MfG
 
Zurück
Oben