+1 voto
77 visitas
Estou tentando aplicar um Javascript numa tela do Wes, fazendo um AddEventListener on Change pra que sempre que o campo mudar, eu fazer uma operação específica, porém o campo é um input que vem do Select, e simplesmente não funciona.

 

Campo gerado pelo WES ao selecionar um registro no Select:

<input type="hidden" name="ctl00$Main$WIDGETID_636046302350290715$formView$PageControl$Guias$Guias$BENEFICIARIO$ctl01" id="ctl00_Main_WIDGETID_636046302350290715_formView_PageControl_Guias_Guias_BENEFICIARIO_ctl01" value="{&quot;id&quot;:&quot;21486&quot;,&quot;text&quot;:&quot;00001000001200 - SIMONE ARISA HOKASONO - 00001000001200&quot;}">

 

Minhas tentativas: 

document.getElementById('ctl00_Main_WIDGETID_636046302350290715_formView_PageControl_Guias_Guias_BENEFICIARIO_ctl01').addEventListener("change", function() {
console.log("teste")
});
$('#ctl00_Main_WIDGETID_636046302350290715_formView_PageControl_Guias_Guias_BENEFICIARIO_ctl01').on('change', function () {
        console.log("teste");
    });


OBS: Se eu tento usar a mesma lógica em um input Text comum, funciona normalmente.

por (12 pontos) | 77 visitas

1 Resposta

+4 votos
Melhor resposta

Os eventos tal como o onchange só são acionados quando o usuário executa o evento no navegador, como o usuário não consegue interagir com o input hidden ou um input escondido por CSS esse evento não é disparado.

Sendo assim o evento de change deve ser executado manualmente:

$('#hidden-field').change(function(){
          alert('valor alterado');
})

//alguma condição para disparar o gatilho do evento
$('#hidden-field').trigger('change');

 

Obs.; muito cuidado a utilização de id's gerados pelo webforms tal como 

ctl00_Main_WIDGETID_636046302350290715_formView_PageControl_Guias_Guias_BENEFICIARIO_ctl01, em algum momento isso poderá mudar conforme a ordem dos widgets.
por (51 pontos)
selecionada por
uma das formas de você pegar o campo hidden é através do data-field:

$('[data-field="NOMEDOCAMPO"]')

Perguntas relacionadas

+2 votos
1 resposta
+1 voto
1 resposta
0 votos
1 resposta
+2 votos
3 respostas
perguntado 7 Abr, 2016 por diogo.lopes (14 pontos) | 75 visitas
Melhores Apr 2020
  1. Williamhss

    5 Pontos

  2. willian.metalsystem

    4 Pontos

200 pontos
Melhores 2020 Mar 30 - Apr 05
  1. willian.metalsystem

    6 Pontos

  2. Williamhss

    5 Pontos

  3. anônimo

    5 Pontos

422 perguntas
470 respostas
342 comentários
466 usuários