2009-05-08 8 views
2

J'ai une zone de texte, et quand elle change, j'aimerais qu'une fonction soit appelée. Toutefois, l'événement de lancement standard se déclenche une fois que le focus a quitté la zone de texte. Ce que je veux vraiment, c'est que le feu se déclenche dès que l'utilisateur commence à taper.Y a-t-il un meilleur onchange?

Je pourrais lier onkeypress, mais cela ne gérait pas, disons, coller du texte dans la zone de texte avec la souris. De plus, il se déclenche pour Tab et autres touches non changeantes.

Existe-t-il une meilleure solution?

+0

Je sais que ce qui est laid. .. mais qu'en est-il de sondage de l'état avec une minuterie ...? – elcuco

Répondre

4

Vous pouvez ajouter un

onkeyup="SomeFunction();" 

Edit: Aah, trop vite. Je n'ai pas vu le "sur la pâte de souris".

Edit 2:

<script type="text/javascript"> 
    var ival = ""; 
    var checkup = window.setInterval("checkChange();", 100); 
    function checkChange() { 
     var nval = document.getElementById("test").value; 
     if (nval!=ival) { alert("change in the text"); ival=nval; } 
    } 
</script> 
<input type="text" id="test" name="test" value="" /> 

Exemple de: http://bytes.com/topic/javascript/answers/703623-capturing-event-when-user-right-click-paste-into-text-box

+1

qui ne couvre pas le clic du milieu (coller sur Linux), ni le clic droit-> coller. – elcuco

+0

vous pouvez ajouter le gestionnaire 'onpaste' – exebook

0

onKeyPress fonctionnera, juste dans le cas d'un code COPIÉES - vous saurez coller le texte parce qu'il contient un caractère de nouvelle ligne où comme si vous venez de taper dans un champ texte - le caractère de nouvelle ligne ne serait pas présent

juste pour vérifier une nouvelle ligne et d'utiliser onKeyPress

Questions connexes