2010-11-19 5 views
2

J'ai une zone de texte avec un nombre en dehors de celui que j'ai initialement défini à 7 via le script. Quand je tape dans la zone de texte je veux que le nombre diminue, quand je supprime des caractères je veux qu'il augmente. Le script que j'ai maintenant diminue le nombre comme prévu, mais quand je le supprime diminue encore. S'il n'y a plus de caractères dans le champ et que j'appuie sur la touche delete, le nombre augmente. Quelqu'un peut-il me mettre sur la bonne voie? Merci.Aide avec le compteur de longueur de la zone de texte jQuery

Voici ce que j'ai:

var origCnt = 7; 

$('#cntEngDesg_insert').html(origCnt); 

$('#txtEngDesg_insert').keyup(function() { 
    var currentlen = $('#txtEngDesg_insert').val().length; 
    if (currentlen++) { 
     origCnt--; 
     $('#cntEngDesg_insert').html(origCnt); 
    } 
    else if (currentlen--) { 
     origCnt++; 
     $('#cntEngDesg_insert').html(origCnt); 
    } 
});    

Répondre

4

La solution est en fait beaucoup plus simple:

var origCnt = 7; 

$('#cntEngDesg_insert').html(origCnt); 

$('#txtEngDesg_insert').keyup(function (e) { 
    var currentlen = $('#txtEngDesg_insert').val().length; 
    if(currentlen <= origCnt) { 
     $('#cntEngDesg_insert').html(origCnt - currentlen); 
    } else { 
     $(this).val($(this).val().substring(0, origCnt)); 
    } 
}); 

Démo: http://jsfiddle.net/snpeX/

+0

Très bien, merci! –

+0

devrait avoir rafraîchi avant de soumettre ma solution identique :) – Variant

+0

@nick - Je viens de l'éditer, maintenant il va effectivement restreindre l'entrée à la longueur correcte, plus il y a une démo. @Variant - Je le fais tout le temps :) – karim79

0

Pourquoi ne pas faire tout cela?

var origCnt = 7; 

$('#cntEngDesg_insert').html(origCnt); 

$('#txtEngDesg_insert').keyup(function() { 
    var currentlen = $('#txtEngDesg_insert').val().length; 
    $('#cntEngDesg_insert').html(origCnt - currentlen); 
});  

vous pouvez évidemment ajouter quelques tests pour voir si vous allez en dessous de zéro et le manipuler de quelque façon que vous avez besoin

0

Il est vendredi soir et je ne sortais pas de commencer à boire encore si je voulais faire quelque chose pour accélérer le temps même si la réponse est déjà fournie. Je suis venu avec cela qui le rendra réutilisable et tire parti des fonctionnalités HTML (dans ces rares cas où il n'y a pas de JavaScript).

http://pastie.org/pastes/1312188/text

Questions connexes