2010-05-19 4 views
0

J'utilise le jquery numeric plugin pour autoriser uniquement la saisie de chiffres dans certains champs.Désactiver dynamiquement un plugin jquery

$("input.numeric").numeric(); 

Je veux désactiver cette fonction dynamique dans certains cas, pour permettre à l'utilisateur de saisir d'autres caractères (à savoir les lettres). J'ai essayé d'utiliser les fonctions unbind() ou undelegate() sans succès.

Est-ce que quelqu'un connaît la solution? Merci

+0

Comment avez-vous utilisé '.unbind()'? Le plugin numérique semble juste lier un gestionnaire 'keypress' à l'entrée, donc' $ ("input.numeric"). Unbind(); 'devrait supprimer ce gestionnaire (et tous les autres). – user113716

+0

Merci pour votre aide. Finalement, j'ai trouvé cette solution: $ ('# my_elt'). Unbind ('keypress'). Unbind ('blur'); Je dissocie tous les événements utilisés par le plugin. – Gilles

Répondre

4

Ce plugin contient la fonction removeNumeric();

Et il est presque correct. Au début, vous devez ajouter un peu de solution dans le plugin jquer.numeric:

insert unbind("keyup", $.fn.numeric.keyup) à removeNumeric fonction

$.fn.removeNumeric = function() 
{ 
    return this.data("numeric.decimal", null).data("numeric.negative", 
    null).data("numeric.callback", null).unbind("keypress", 
    $.fn.numeric.keypress).*unbind("keyup", 
    $.fn.numeric.keyup)*.unbind("blur", $.fn.numeric.blur); 
} 

Eh bien, et après cela, vous pouvez essayer $("input.numeric").removeNumeric(); fonctionne très bien pour moi.

+0

Je voudrais UP VOTER cela au moins deux fois ...... – Abs

Questions connexes