Frage

Ich habe folgenden jQuery-Code an seinem Platz auf meiner Seite:

var isChanged = false;
$(document).ready(function()
{
    $('.change').change(function() {
        isChanged = true;
    });
});

Ich bin mit einem plugic dass ändert sich der Wert des Textfeldes es um die Verwendung verbunden:

target.val('xxxx');

das Textfeld in der HTML (von asp.net) ist:

<input name="ctl00$cphHolder1$rptFlex$ctl01$txtLeftRank"
  type="text"
  value="52°"
  id="ctl00_cphHolder1_rptFlex_ctl01_txtLeftRank"
  class="change atiselector" />

Wenn der Wert des Textfelds geändert wird Code verwendet wird, wird die Änderung nicht ausgelöst. Wenn ich in dem Textfeld eingeben, die Änderung ausgelöst wird. Was bin ich?

War es hilfreich?

Lösung

Das ist so, wie es funktioniert. Wenn Sie die Änderung des Wertes müssen die „Änderung“ Ereignis auslösen, können Sie explizit tun, indem Sie:

$('input#whatever').val('hi').change();

Andere Tipps

$('.change').change() wird das Ereignis ausgelöst. Nur die Attribute ändert das Ereignis nicht ausgelöst.

Nach DOM Level 2 Ereignis Spezifikation :

  

Das Änderungsereignis tritt auf, wenn ein Steuerelement die Eingabe des Fokus verliert und sein Wert geändert wurde Fokus seit gewinnen.

Das bedeutet, dass Änderungsereignis Feuer auf Änderung durch Interaktion mit dem Benutzer ausgelegt ist. Programmatischen Änderungen wird dieses Ereignis nicht dazu führen, die entlassen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top