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

7 respostas
C

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!

7 Respostas

A

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]

C

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

Obrigado!

J

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

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

C

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.
C

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.

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?!

C

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:

F

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

Criado 28 de março de 2007
Ultima resposta 21 de jan. de 2011
Respostas 7
Participantes 5