verrouiller une zone de texte en utilisant jQuery?

Comment “verrouiller”-t-il une zone de texte avec jQuery afin qu’aucun autre caractère ne puisse être entré? Je ne veux pas nécessairement le désactiver car je veux autoriser la suppression de caractères.

update: oops..il vient de me parvenir: si je limite la longueur à 400 caractères, je peux utiliser les éléments suivants lorsque la longueur est> 400:

this.value = this.value.subssortingng(0, 400); 

qui va juste couper l’excès

Voici un exemple de modification rapide du plugin jquery.numeric 🙂

Il permet des touches spéciales mais ne laisse rien entrer à l’utilisateur.

   

Essaye ça:

 $("textarea").keypress(function(){ if($(this).val().length>=10) return false; }); 

Démo ici: http://jsbin.com/erama

Vous pouvez vous lier à l’événement de pression sur une touche ou de réduction de touche de la zone de texte et bloquer tous les caractères sauf les fonctions de retour arrière et de suppression. De cette façon, l’utilisateur peut supprimer des caractères mais ne peut pas append / supprimer de nouveaux caractères.

Vous vous connectez à l’événement de frappe comme ceci:

 $('#text-area').keypress(function(e) {}); 

Vous pouvez ensuite utiliser la propriété keyCode de l’object événement (argument e) qui est passé pour vérifier si la touche sur laquelle vous avez appuyé est delete ou backspace. Vous pouvez trouver plus d’informations sur l’événement de frappe sur le site Web de jQuery.

Vous pouvez vous baser sur une liste de codes de clé pour autoriser uniquement les opérations de suppression et de retour arrière. Dans ce cas, keyCode doit être égal à 8 ou 46.

Donc, le code résultant serait quelque chose comme ceci (non testé cependant):

 $('#text-area').keypress(function(e) { if(e.keyCode != 8 && e.keyCode != 46) { e.preventDefault(); } }); 

La fonction preventDefault de l’événement interrompt tout traitement ultérieur. Par conséquent, si les caractères ne sont pas supprimés ou supprimés, ils ne seront pas saisis.

Voici un plugin pour limiter les entrées aux textboxes / textareas

  jQuery.fn.charlimit = function(prompt, limit) { this.keyup(function(e) { var txt = $(this).val(); var c = txt.length; if (prompt != null || prompt != 'undefined') { $(prompt).html((limit - c) + " chars left."); } if (c > limit) { $(this).val(txt.subssortingng(0, limit)); return false; } return true; }); return this; } 

invite peut être n’importe quel span / div, etc. pour afficher un message d’invite.