$(".allownumericwithdecimal").live("keypress keyup ", function (event) {
$(this).val($(this).val().replace(/[^0-9\.]/g, ''));
var text = $(this).val();
if (!((event.which >= 48 && event.which <= 57) || event.which == 8 || event.which == 46 || event.which == 110 || event.which == 0)) {
var text = $(this).val();
if ((text.indexOf('.') != -1) && (text.substring(text.indexOf('.'), text.indexOf('.').length).length > 2)) {
//event.preventDefault();
}
}
var text = $(this).val();
if ((event.which >= 48 && event.which <= 57) && (text.indexOf('.') != -1)) {
if ((text.substring(text.indexOf('.'), text.indexOf('.').length).length) > 2) {
//event.preventDefault();
}
if (event.which == 190) {
//event.preventDefault();
}
}
if (text.indexOf('.') != -1 && event.which == 190) {
if (text.match("^[0-9]+(\.[0-9]{0,2})?$")) {} else {
$(this).val('');
}
}
if (text.indexOf('.') == -1 && text.length > 7 && (event.which != 190 && event.which != 8 && event.which != 46 && event.which != 110 && event.which != 0)) {
event.preventDefault();
}
});
4 Réponses :
keppress code> semble être le coupable lorsque j'ai changé le violon pour simplement utiliser keyup code> le remplacement est arrivé correctement (bien que le curseur décalé à la fin) P>
le curseur ne doit pas passer à la fin.
Essayez ce code Je viens de faire un test p> Vous vous assurez simplement que l'utilisateur saisir la valeur de ce que vous voulez. Vous remplacez si la valeur entrée n'est pas un code>, il fonctionne. jsfiddle entier code>. VOTRE REGEX MOYENNE:
J'ai voté votre réponse. Ce n'est pas posté par moi mec !!
Je pensais que tu es celui qui a posé cette question! Merci pour le vote! :)
@Radonirinamaminiaina J'étais celui qui a posté ce code :) Merci de l'aide.
@Rishiprakash C'est un grand plaisir de vous aider.
@Radonirinamaminiaina pouvez-vous aussi ajouter une explication théorique pour cela, je veux dire comment votre code fonctionne?
@Radonirinamaminiaina Oui, même si je l'ai également compris. :)
Oui, vous l'avez presque fait, si vous n'avez pas oublié le test! ;)
Enlevez simplement l'événement «KeyPress 'Event KeyPress Event est très similaire à celui de l'événement de la clé. Si vous appuyez sur une touche KeyPress Event, vous ne pouvez pas identifier le caractère. Dans votre code, il faut comme entrée de courant vide afin de remplacer le caractère. P>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div>
<input type="text" class="allownumericwithdecimal"/>saadad
</div>Ouais bien travailler. Mais code supplémentaire pour la position du curseur. :( Remarque: la question n'a pas demandé par moi.
Intéressant, mais test de test n'est pas clair, ajoutez des valeurs d'entrée appropriées et de la sortie réelle de votre sortie.
Chaque fois que vous appuyez sur le clavier, il remplace la valeur avec une nouvelle. Donc, ce dont vous avez besoin, c'est de faire un test avant de remplacer la valeur de l'élément code> d'entrée code>.
@ S͢KYD͢ream Merci, j'étais en réunion au cours de la dernière heure et une question est déjà résolue. Dois-je encore ajouter une entrée appropriée et des valeurs de sortie souhaitées pour les futurs demandeurs ??
@Rishiprakash non non je comprends bien, bien merci bon que. :)