¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Soluções para ativar o evento de mudança ao alterar o valor de entrada no evento liveChange

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Cargando...

Caros Especialistas,

Por favor, forneçam algumas soluções/dicas sobre o problema abaixo o mais rápido possível.

A alteração do valor de entrada no evento liveChange não está ativando o evento de mudança.

Código:

Visualização :

<Input id="idInput" change="onChange" liveChange="onLiveChange"/>

controlador :

onLiveChange:function(oEvent){

oEvent.getSource().setValue(oEvent.getSource().getValue());

},

onChange:function(oEvent){

alert("onInputChange");

}

A alerta não é ativada uma vez que o foco sai do Input. A alerta é ativada se não alterar o valor no método liveChange.

Obrigado antecipadamente!

Obrigado & Cumprimentos,

Prathyusha.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

prathyushab Sem conhecer qual é a lógica que se supõe que deve ser encapsulada, não posso compartilhar nenhum código. A encapsulação é uma tarefa básica do JavaScript que está fora do escopo do SAPUI5. Basta chamar, por exemplo, this.myEncapsulatedLogic(algunsArgumentos); nos manipuladores `onChange` e `onLiveChange`.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Boghyon Hoffmann,

Muito obrigado pelos detalhes. Você pode compartilhar algum exemplo de código para o ponto mencionado? Realmente me ajuda muito.

Parece que você está tentando ativar o controlador `onChange` em `onLiveChange`. Para lidar com esse cenário, considere criar um método separado que encapsule a lógica que deseja executar quando o valor mudar. Em seguida, chame este método nos controladores `onChange` e `onLiveChange`.

Obrigado novamente!

Atenciosamente,

Prathyusha.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Se alterar a propriedade `value` programaticamente em `onLiveChange` através de `setValue` com o mesmo novo valor, o controle de entrada não dispara `change` depois porque não detecta uma nova alteração: a propriedade `value` já foi atualizada.

Parece que você está tentando acionar o manipulador `onChange` em `onLiveChange`. Para lidar com esse cenário, considere criar um método separado que encapsule a lógica que deseja executar quando o valor mudar. Em seguida, chame este método nos manipuladores `onChange` e `onLiveChange`.

___

Para outros leitores que enfrentem problemas semelhantes:

Em geral, o evento `change` do `sap.m.InputBase` é acionado apenas quando o usuário pressiona enter ou move o foco para fora do campo com base nos eventos nativos do navegador "keydown" e "blur", respectivamente. Chamar `setValue` programaticamente não ativa nenhum desses eventos nativos.

Também observe que, se você habilitar `valueLiveUpdate` enquanto a propriedade `value` estiver vinculada a um modelo, nenhum evento `change` será disparado de acordo com a referência da API. Nesse caso, apenas o manipulador de mudança registrado para o evento `liveChange` será ativado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?