2010-12-09 5 views
0

Je possède ce morceau de code:faire du travail onchange comme onchange et pas comme onleave?

<input type="text" name="desc" id="desc" onchange="OnDescChange();" /> 

mais il ne fonctionne pas comme je veux. Il fonctionne la fonction quand je quitte la boîte, je voudrais le faire chaque fois que le contenu de ce champ d'entrée change, comment puis-je faire cela? (J'essaie de faire une boîte à suggestions à l'entrée des utilisateurs). J'ai également essayé jquerys .change mais il donne le même résultat med.

+1

Quand vous dites "chaque fois que le contenu ... change" cherchez-vous à exécuter la fonction à chaque changement de frappe? –

Répondre

2

Essayez onKeyUp ou onKeyPress.

+0

Plus onpaste :) –

+0

Ceci n'attrape pas la copie-et-pase déclenchée par la souris en utilisant le menu contextuel! – ordnungswidrig

1

Essayez d'utiliser l'événement onkeypress:

<input type="text" name="desc" id="desc" onkeypress="OnDescChange();" /> 
+0

merci ... j'ai totalement oublié cet événement! ty Sjoerd et thejh – Jason94

1

Je recomment en utilisant le gestionnaire d'événements onkeyup

<input type="text" name="desc" id="desc" onkeyup="OnDescChange();" /> 

onkeydown ou onkeypress pourrait être utilisé aussi, mais le seul problème à être au courant avec c'est-à-dire que ces événements se déclenchent avant que le texte dans le champ de saisie ait été mis à jour.

0

Vous pouvez utiliser 'onKeyUp' ou événements 'onKeyDown' au lieu de 'onchange'

Si vous utilisez jquery vous pouvez utiliser quelque chose comme ce qui suit

$("input").keyup(function(){ 
    $("input").css("background-color","#D6D6FF"); 
}); 

Hope this helps.