e.keyCode non funziona

Vorrei chiederti qualcosa che non funziona per me? Se potessi aiutarmi, per favore.

html:

 

Codice Javascript:

 function(id, e) { var comment = $(".blabla").val();`
// alert(message); WORK alert(e.keyCode) // DOES NOT WORK }

Con modifiche minime,

  function doSomething(e){ var comment = $(".blabla").val(); var id = this.id; alert(e.keyCode) // Now it should work } 

Il primo parametro nella funzione doSomething sarà l’object evento. this variabile restituirà un riferimento all’elemento di input.

Se modifichi i tuoi js inviati e fornisci un nome alla funzione come ho fatto senza apportare modifiche ai parametri di funzione, troverai che l’ id conterrà l’object evento.

Dare innanzitutto un nome alla function keyfinder chiamarlo su keyup come onkeyup="function keyfinder(id, event);"

Quindi prova quanto segue:

 function keyfinder(id, e){ var eventval = e || window.event; var comment = $(".blabla").val(); // alert(message); WORK alert(eventval.keyCode); 

}

La funzione non può essere un nome di funzione. Nel tuo codice HTML, modifica la function(id, e) in, ad esempio, inputKeypress(id, e) o qualsiasi altro nome che ritieni appropriato.

Nel tuo JavaScript, dichiara che funziona in questo modo:

 function inputKeypress(id, e) { do stuff } 

è necessario fornire un nome diverso dalla function a una function

usa this.id intead di solo id

il tuo file php:

  

Stai ovviamente utilizzando jQuery, quindi puoi definire l’evento keyup anche nel tuo script:

HTML / PHP

  

JavaScript

 $(".blabla").keyup(function(e) { console.log("pressed key with code", e.keyCode, "on id", this.id); }); 

La funzione anonima passata come gestore in $(...).keyup(handler) riceve l’evento jQuery che stai cercando. All’interno di questa funzione this è impostato sull’elemento DOM a cui è collegato l’evento, in questo caso il campo di input . Se hai intenzione di lavorare su quel campo, ad esempio usando .val() dovresti avvolgerlo in $(...) primo:

 $(".blabla").keyup(function(e) { var $input = $(this) console.log("current value is", $input.val()); }); 

Tieni presente che il valore potrebbe non essere cambiato quando utilizzi il keydown anziché il keyup .

Per maggiori informazioni su questo, dai un’occhiata a jQuery-API

Non è ansible utilizzare la function come nome funzione in evento onkeyup .