Javascript para evento "ontextchanged" de um input do tipo "text"

Olá,

Preciso de um evento do tipo “ontextchanged”, que chame uma função quando o texto de um input do tipo “text” for alterado. Não posso usar “keypressed”, “keyup” ou “keydown” porque este input será preenchido com leitor de código de barras…

Obrigado!

tentei achar um evento para isso mas naum encontrei.

então fiz um código que controla isso com uma espécie de Timer.
Veja se pode te ser útil:


<html>
<head>

</head>
<body>


<form name="form1">
  <input type="text" size="8" name="campo">
</form> 

<script> 
<!-- 
// 

var strNew = document.form1.campo.value; 
var strOld = document.form1.campo.value;

function ControlTimer(){ 

    strNew = document.form1.campo.value;
    if(strNew!=strOld){
	fAcao();
    }
    strOld = strNew;
    setTimeout("ControlTimer()",100) 
} 
ControlTimer() 


function fAcao(){ 
    alert("mudou");//coloque seu codigo aki
} 


--> 
</script> 


</body>
</html>

Altere a função fAcao() colocando o código que desejaria estar na programação do evento.
[b]OBS: testei o código acima no IE e no FireFox.

Espero que tenha te ajudado[/b]

Entendi a idéia sim amigo, mas isso ai não fica meio lento!?

Obrigado!

O evento que dispara ao alterar o valor do campo é onChange.

Mas ele só dispara ao se alterar o valor e perder o foco.

3 passos rapidos:

  1. Aprenda JavaScript que nem gente (lendo toda a www.quirksmode.org e o codigo da www.prototypejs.org), ate o ponto onde vc possui uma vontade visceral de transformar quem aparecer na sua frente com codigo JavaScript enfiado no meio do HTML em uma sopa de sangue e pedacos irreconheciveis de ossos e orgaos

$('id-do-textbox-onde-vai-o-evento').observe('change', function() {
  // ...
});
  1. Nao tem passo 3.

[quote=cv]3 passos rapidos:

  1. Aprenda JavaScript que nem gente (lendo toda a www.quirksmode.org e o codigo da www.prototypejs.org), ate o ponto onde vc possui uma vontade visceral de transformar quem aparecer na sua frente com codigo JavaScript enfiado no meio do HTML em uma sopa de sangue e pedacos irreconheciveis de ossos e orgaos

$('id-do-textbox-onde-vai-o-evento').observe('change', function() {
  // ...
});
  1. Nao tem passo 3.[/quote]

cv, agora vc se enganou um pouco… Eu USO Prototype e eu NÃO uso javascript enfiado no meio do HTML. o Evento que eu precisava era para passar para o Event.observe do Prototype e usar FORA do html. Será que posso me considerar gente agora, segundo os seus conceitos?!

Faltou me mandar a merda apropriadamente, entao imagino que vc nao esteja la tao familiarizado com sarcasmo. Mas vc chega la.

E faltou ler a quirksmode, ou vc saberia que o nome do evento eh ‘change’, entao desce do cavalo :wink:

1 curtida

Resolvi isso de maneira simples em uma aplicação que eu fiz.

eu usei o evento onFocus() para atualizar o campo que eu queria…

o meu caso é um pouco diferente do seu mas acho que funcionará para você também, a lógica é simples:

Quando o usuário fizer a leitura com o código de barra “set” o focus no campo desejado e nesse mesmo campo utilize o evento onFocus para atualizar o valor do campo… falou