jQuery: modification de la valeur d'entrée sur pression de touche

Chaque fois qu'un point '.' est tapé dans mon entrée (type=nombre) de terrain, je veux remplacer par une virgule ','.

$(box).find('input[type=number]').keypress(function(evt){
        if(evt.which==46){
            $(this).val($(this).val()+',');
            evt.preventDefault();
        }
    });

L'événement est bien tiré, mais au lieu de cela, le terrain est totalement vide. Quel est le problème?

MODIFIER

La raison pour laquelle je fais cela, c'est que le Chrome (dernière version), contrairement à la recommandation HTML5, l'utilisation de virgules et jetez-le point input type=nombre. Je suis en train de développer pour Chrome cause je ne peux pas tester mon application quelque part d'autre pour le moment. Aucun commentaire sur ce (anormal ?) la situation serait appréciée.

  • Il est recommandé d'utiliser keyup événement à la place.
  • un alert($(this).val()) afficher quoi que ce soit
  • entrée type="number" n'acceptera pas de virgule ,. Vous pourriez avoir à changer d'entrée type=text
  • en fait c'est ce que le W3C dit à propos type=nombre, mais Chrome au contraire accepte uniquement les virgules, et supprimer des points et rien venir par la suite. C'est pourquoi je voulais le faire, en premier lieu.
  • keyup n'a même pas de déclencher l'événement.
  • Oui, la valeur précédente est bien capturée

InformationsquelleAutor pH Cito | 2012-11-23