Uncaught TypeError: Cannot read property 'toLowerCase' undefined
$('#sum').keydown(function(){
updateResultPrice();
});
function updateResultPrice() {
ajax('/payment/summ', 'price='+$(this).val());
}
Pas de travail! Journal de la Console d'impression:
Uncaught TypeError: Cannot read property 'toLowerCase' undefined
- Il n'y a pas d'appel à la
toLowerCase
dans le code que vous avez posté. - C'est parce que l'erreur est levée à partir du code jQuery, qui est l'application de
.toLowerCase()
à une variable qui n'est apparemment pas défini.
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas un appel à
.toLowerCase()
, mais je devine que vous êtes à la chaîne à la fin de.val()
.Le problème, c'est que votre
this
valeur estwindow
, et pas le#sum
élément.Changer votre gestionnaire de ceci:
Maintenant, lorsque le gestionnaire est appelé,
this
fera référence à la#sum
variable et.val()
ne sera pas de retourundefined
.J'ai testé votre code, comme c'est, et n'a pas réellement obtenir la "Uncaught TypeError: Cannot read property 'toLowerCase' undefined" erreur dans la console. Toutefois, j'ai réussi à déclencher une erreur avec le
ajax()
méthode.La raison que votre code ne fonctionnait pas, a été le fait de
$(this)
serait égal à lawindow
, et pas le#sum
élément. les six doigts de l'homme a expliqué dans sa réponse.Essayez d'utiliser ce code à la place.
Pour vos tests plaisirs, voici une JSFiddle démo du code ci-dessus.