2010-12-12 9 views
1

Je dois écrire un événement de clavier qui interceptera les caractères saisis dans le champ de saisie spécifié. J'ai besoin de faire cela en utilisant jQuery dans cakePHP.Evénement de touche jQuery dans cakePHP

Et j'ai besoin de cette fonction pour travailler en général pour tous les champs de texte d'entrée dans un formulaire. S'il vous plaît dites-moi où placer le code? Et comment le coder?

Répondre

0

Vous pouvez avoir quelque chose comme ceci qui lie l'événement de keydown à tous les éléments d'entrée avec du texte de type qui sont dans le formulaire avec l'ID yourformid.

$(function(){ 
    $("#yourformid input:text").bind("keydown", function(){ 
     var currentElemID = this.id; 
     //if you want to convert the current element to a jQuery object then you can use $(this) 
    }); 
}); 
+0

@rahul, demandant par hasard, hors de la question du contexte, que faites-vous ?? – kobe

+0

http://stackoverflow.com/users/47738/rahul – rahul

+0

@gov Étant donné près de 1700 réponses, je dirais * ceci * principalement. ;-) – Orbling

0

J'ai une suggestion. Toujours utiliser des techniques JavaScript discrètes. ils sont maintenables et aussi plus fins. Dans mon expérience personnelle, j'ai eu beaucoup de problèmes en utilisant Rails avec du code JavaScript dans les contrôleurs. La même chose doit s'appliquer pour CakePHP.

0

Je suggère d'utiliser comme de jquery keypress():

$("#field").keypress(function(event){ var code = event.which}); 

Code variable sera le numéro ascii du personnage, alors si vous le souhaitez, vous pouvez convertir en utilisant la fonction native fromCharCode()

choses à noter : IE ne détectera pas retour arrière en utilisant la touche, uniquement sur le clavier et le clavier.

+0

Merci barbiker. Aussi, existe-t-il un moyen d'obtenir l'ID du champ de saisie dans lequel la touche a été enfoncée? c'est-à-dire, l'événement keypress devrait être une fonction générale qui peut obtenir l'identifiant du champ et basé sur cet identifiant il devrait faire le code! – Phoenix