Comment prévenir keypress deux chiffres après un nombre décimal?
J'ai obtenu une tâche de prévenir keypress deux chiffres après un nombre décimal.
Mon fichier jquery est
$(function(){
$('#name').bind('paste', function(){
var self = this;
setTimeout(function() {
if(!/^[a-zA-Z]+$/.test($(self).val()))
$(self).val('');
}, 0);
});
$('#salary').bind('paste', function(){
var self = this;
setTimeout(function() {
if(!/^\d*(\.\d{1,2})+$/.test($(self).val()))
$(self).val('');
}, 0);
});
$('.decimal').keyup(function(){
var val = $(this).val();
if(isNaN(val)){
val = val.replace(/[^0-9]./g,'');
if(val.split('.').length>2)
val =val.replace(/\.+$/,"");
}
$(this).val(val);
});
});
Ma page html est
<b>Name</b>
<input type="text" id="name" /><br/>
<b>Salary</b>
<input type="text" id="salary" class="decimal" />
ici, je veux écrire seulement 2 chiffres après la virgule,comment puis-je faire cela?
Vous pouvez voir mon code dans http://jsfiddle.net/V6s4B/
je voudrais valider l'entrée, lorsque la personne est fini d'entrer les Données, pas du tout. Cela permettrait de rendre la chose facile. ...juste une sugestion.
U peut m'aider à faire cela? vous pouvez voir mon code sur jsfiddle.net/V6s4B
Je ne suis pas un designer de l'interaction, mais en tant qu'utilisateur je ne voudrais pas être trop heureux quand tout ce que je tape est immédiatement changé en quelque chose d'autre. Je vous conseille de dire à l'utilisateur quel type d'entrée est prévu (avant et après).
J'ai le même problème...
veux juste que deux chiffres après la virgule nombre.
U peut m'aider à faire cela? vous pouvez voir mon code sur jsfiddle.net/V6s4B
Je ne suis pas un designer de l'interaction, mais en tant qu'utilisateur je ne voudrais pas être trop heureux quand tout ce que je tape est immédiatement changé en quelque chose d'autre. Je vous conseille de dire à l'utilisateur quel type d'entrée est prévu (avant et après).
J'ai le même problème...
veux juste que deux chiffres après la virgule nombre.
OriginalL'auteur Monica | 2013-03-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez gérer l'événement de touche avant de
keyup
surkeypress
, si l'entrée n'est pas à notre goût, nous pouvons désactiver l'événement de se produire. Quelque chose comme ceci:Mise à jour
Malheureusement, ma réponse originale à cette question ci-dessous échoue sur certains numéros ne peuvent pas être représentés exactement comme un float. Voici une autre solution qui vérifie la position de la
'.'
caractère à l'encontre de la longueur de la chaîne avec une pratique fonction d'assistance.jsFiddle
Réponse originale à cette question
jsFiddle
Noter que
parseFloat(newValue) * 100 % 1 > 0
évalue à true sinewValue
contient un nombre qui a plus de 2 décimales.+1 Répond à la question, et elle fonctionne correctement.La bonne réponse.
Attendre que suis-je le seul qui ne peut pas taper 1.11 ou 2.22? Il semble que le bug sur certains intrants.
pas de travail.. je l'ai essayé
Essayez de mine, assez sûr qu'il fonctionne, il a travaillé avec tous les chiffres que j'ai mis dans de toute façon, vous aurez juste à faire quelques vérifications pour s'assurer qu'il n'a pas de lettres, je vais ajouter que trop, donnez-moi une seconde. Grrr les combats avec la suppression de rien mais les chiffres et avez pour exécuter le travail. La virgule fonctionnalité fonctionne bien
OriginalL'auteur Daniel Imms
http://jsfiddle.net/calder12/fSQpc/
Arrêter lettres d'aller dans la boîte, vous aurez à mettre les deux ensemble, je n'ai pas le temps.
Ouais, je peux vous donner le code pour arrêter, mais je n'ai pas le temps d'intégrer les deux ensemble, vous aurez à faire.
code grande, pitié de la console d'erreurs
2 ans code... ce que les erreurs de la console?
hein, comme je l'ai dit, 2 ans code qui fait le travail. Une ligne supplémentaire corrige l'erreur de la console. Vous n'avez rien de mieux à faire que de troll 2 ans réponses? jsfiddle.net/fSQpc/49
OriginalL'auteur Rick Calder
Une Autre Solution Possible(Démo):
OriginalL'auteur Zaheer Ahmed
Cela pourrait être utile à certains. J'ai mélangé les réponses de ce type, @Tats_innit
de https://stackoverflow.com/a/10514166/5382523 et @Rick Calder ci-dessus.
MODIFIER
aussi à partir de ce gars, isJustMe de https://stackoverflow.com/a/17289322
pour le parseFloat avec "|| 0". Parce que si l'entrée du champ est null ou zéro "NaN" apparaît et vous ne pouvez pas le supprimer.
HTML
JAVASCRIPT (JQUERY)
le "prix" est pré-défini.
Remarque: toujours avoir buggy entrées, mais encore kickin'. (y)
Plus d'infos sur toFixed - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
OriginalL'auteur Quer
J'ai fait de cette façon: à la Condition d'une classe de permettre uniquement des chiffres, pour votre entrée:
OriginalL'auteur MarwaAhmad