2010-12-12 12 views
1

Ich muss ein Keydown-Ereignis schreiben, die die Zeichen fängt, die in das angegebene Eingabefeld eingegeben werden. Ich muss dies mit jQuery in CakePHP tun.jQuery Keydown-Ereignis in CakePHP

Und ich brauche diese Funktion für alle Eingabetextfelder in einem Formular im Allgemeinen zu arbeiten. Bitte sagen Sie mir, wo ich den Code platzieren soll? Und wie man es programmiert?

Antwort

0

Sie können so etwas haben, das keydown-Ereignis an alle Eingabeelemente mit dem Typ text bindet, die sich innerhalb des Formulars mit der ID yourformid befinden.

$(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, fragt beiläufig, außerhalb des Kontexts Frage, was machst du ?? – kobe

+0

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

+0

@gov Angesichts fast 1700 Antworten würde ich sagen * this * hauptsächlich. ;-) – Orbling

0

Ich habe einen Vorschlag. Verwenden Sie immer unauffällige JavaScript-Techniken. sie sind wartbar und auch etwas dünner. In meiner persönlichen Erfahrung hatte ich viel Probleme mit Rails mit JavaScript-Code in den Controllern. Das Gleiche muss für CakePHP gelten.

0

Ich schlage vor, mit jQuerys keypress() wie:

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

variable Code wird den Charakter der ascii Zahl sein, dann, wenn Sie möchten, können Sie fromCharCode()

Dinge mit der native Funktion konvertieren beachten : IE erkennt Backspace nicht mit Keypress, nur bei Keydown und Keyup.

+0

Danke Barbiker. Gibt es auch eine Möglichkeit, die ID des Eingabefeldes zu erhalten, in dem die Taste gedrückt wurde? dh das Tastendruck-Ereignis sollte eine allgemeine Funktion sein, die die ID des Feldes erhalten kann und basierend auf dieser ID sollte es den Code tun! – Phoenix