Limiter à 2 décimales dans keypress d'une zone de texte?

Je veux entrer un point décimal dans une zone de texte. Je veux restreindre l'utilisateur par la saisie de plus de 2 chiffres après la virgule. J'ai écrit le code pour la réalisation que dans l'événement Keypress.

function validateFloatKeyPress(el, evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;

    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }

    if (charCode == 46 && el.value.indexOf(".") !== -1) {
        return false;
    }

    if (el.value.indexOf(".") !== -1)
    {
        var range = document.selection.createRange();

        if (range.text != ""){
        }
        else
        {
            var number = el.value.split('.');
            if (number.length == 2 && number[1].length > 1)
                return false;
        }
    }

    return true;
}
<asp:TextBox ID="txtTeamSizeCount" runat="server" onkeypress="return validateFloatKeyPress(this,event);" Width="100px" MaxLength="6"></asp:TextBox>

Le code de travail, mais la question est: si j'entre ".75" et ensuite de le modifier pour "1.75", il n'est pas possible. Seule façon de le faire est de le supprimer complètement, puis tapez "1.75". Ce problème se produit si il y a déjà 2 chiffres après la virgule dans la zone de texte. Les conditions que je lui impose sont

a) Après la virgule est présente, elle doit au moins avoir 1 ou 2 chiffres. Pour les ex .75 ou .7 ou de 10,75 ou 333.55 ou 333.2 est acceptée. mais non .753 ou 12.3335

b) Avant la virgule, il ne doit pas être pour l'utilisateur de saisir une valeur. L'utilisateur doit également être en mesure d'entrer un nombre entier également.

Pouvez-vous me dire quel pourrait être le problème?

Merci,

Jollyguy

InformationsquelleAutor Jollyguy | 2014-04-22