Change-Ereignis nicht auslösen. auf Textfeld bei einer änderung der Daten durch anderen code

Brauche ich ein change-Ereignis aus, um Feuer auf ein element, ohne Bezug, wie der Wert des Elements geändert wurde.

Mein use-case ist hier, dass ich ändern müssen Elemente in einem Formular, wenn eine bestimmte textbox den Wert ändert. Das problem ist, dass das element ist bevölkert von einer anderen Taste (eine Kalender-Schaltfläche, über die der Benutzer wählen Sie ein Datum, die wird dann eingefügt in die 1. textbox).

Mit dem folgenden Beispiel muss ich wissen, wenn "Datum1" verpasst, also kann ich das update "Datum2". Ich nicht wissen, die ID des button-seine dynamisch generiert werden, durch ein anderes Werkzeug--so kann ich nicht befestigen alles.

Ich habe Folgendes HTML:

 <input type="text" id="date1" value="" />
 <input type="button" id="but1" value="click me" />
 <br/>
 <input type="text" id="date2" value="" />

Und dieses javascript:

 $(function () {

     $("#but1").click(function () {
         $("#date1").val(new Date().toLocaleDateString());
     });

     $("#date1").change(function () {
         var d = new Date($("#date1").val());
         $("#date2").val(d.addDays(7));
     });

 });

 Date.prototype.addDays = function (days) {
     var current = this;
     current.setDate(current.getDate() + days);
     return current;
 };

Hier ein jsfiddle ich war mit: http://jsfiddle.net/mYWJS/7/

Update: ich habe ein DIV-wrapper um die jsfiddle Beispiel in der Hoffnung, dass vielleicht inspirieren eine andere Lösung. Ich konnte nicht einen Weg finden, es zu nutzen, mich aber meine javascript-Fähigkeiten sind eher mittelmäßig.

In Bezug auf Fabricio Kommentar zu DOM-Mutationen, gibt es eine DOM-mutation-Lösung, die etwas vom browser unabhängig? Es gibt keine Möglichkeit für mich, um mit Sicherheit voraussagen die browser, die hier verwendet werden. Ich bin nicht allzu besorgt über IE6, aber die wenigen Lösungen, die ich gesehen habe für DOM Mutationen konzentrieren sich auf Chrome.

change nur ausgelöst, für text-Eingaben, wenn die Eingabe den Fokus verliert, nachdem sein Wert verändert nach gewinnen zu konzentrieren. Kein Fokus = kein change-Ereignis aus. Sie können die trigger eine synthetische .change() Ereignis, nachdem Sie es von Ihrem JS, aber wenn Sie wirklich brauchen, um zu sehen über einen Eingang s-Wert, Sie müssen eine DOM-Mutation-Observer, die meist einen hacken.

InformationsquelleAutor Sailing Judo | 2013-03-14

Schreibe einen Kommentar