Pergunta

Eu tenho o seguinte código jQuery em vigor na minha página:

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

Estou usando um pluic que modifica o valor da caixa de texto em que está vinculado ao uso:

target.val('xxxx');

A caixa de texto no HTML (do ASP.NET) é:

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

Quando o valor da caixa de texto é alterado usando o código, a alteração não está disparando. Se eu digitar a caixa de texto, a mudança incêndio. o que estou perdendo?

Foi útil?

Solução

É assim que funciona. Se você precisar da mudança de valor para acionar o evento "Change", poderá fazê -lo explicitamente:

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

Outras dicas

$('.change').change() irá demitir o evento. Apenas mudar os atributos não dispara o evento.

De acordo com Especificação de evento de nível 2 DOM:

O evento de mudança ocorre quando um controle perde o foco de entrada e seu valor foi modificado desde a obtenção de foco.

Isso significa que o evento de mudança foi projetado para disparar na mudança pela interação do usuário. Alterações programatológicas não fazem com que esse evento seja demitido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top