Question

J'ai le code jQuery suivant en place sur ma page:

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

J'utilise un plugic qui modifie la valeur de la zone de texte il est lié à l'utilisation:

target.val('xxxx');

la zone de texte dans le code HTML (à partir asp.net) est:

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

Lorsque la valeur de la zone de texte est modifié en utilisant le code, le changement ne se déclenche pas. Si je tape dans la zone de texte, les feux de changement. Qu'est-ce que je manque?

Était-ce utile?

La solution

C'est la façon dont il fonctionne. Si vous avez besoin du changement de valeur pour déclencher l'événement « changement », vous pouvez le faire explicitement par:

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

Autres conseils

$('.change').change() se déclenche l'événement. Il suffit de changer les attributs ne se déclenche pas l'événement.

Selon DOM Niveau 2 événement spécification :

  

L'événement de changement se produit lorsqu'un contrôle perd le focus d'entrée et sa valeur a été modifiée depuis son point.

Cela signifie que l'événement de changement est conçu pour tirer sur le changement par l'interaction de l'utilisateur. changements Programmatique ne provoque pas cet événement à tirer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top