Une banque en Scandinavie a récemment une action en justice parce qu'un client transféré accidentellement un tas d'argent au mauvais compte parce qu'elle a tapé trop de zéros dans la numéro de compte. Cela a rendu le numéro de compte résultant invalide, mais elle n'a pas remarqué parce que l'application Web a effacé silencieusement son chiffre supplémentaire. Alors elle entra quelque chose comme
1223300045
mais aurait dû entrer
122330045
et compte par conséquent
122330004
reçu son argent. Ceci est un défaut majeur d'utilisabilité.
Dans le cas de quelque chose comme une zone de texte, jetez un oeil à l'interface utilisateur de commentaires de StackOverflow. Il vous montre combien de texte est dans votre zone de texte, et vous avez la possibilité d'éditer votre texte, mais la partie vraiment douce est que vous pouvez taper autant que vous voulez, puis modifier jusqu'à la limite nue, vous permettant de vous assurer que vous pouvez dis tout ce que tu aimes. Si votre zone de texte efface le texte de l'utilisateur:
- Ils peuvent ne pas remarquer qu'il arrive, s'ils tapent en regardant le clavier
- Ils doivent effacer du texte avant de pouvoir ajouter une nouvelle formulation plus concise
- Ils seront ennuyés
Ainsi, ma recommandation est de laisser l'utilisateur taper autant qu'ils veulent, mais leur laisser savoir quand ils sont au-dessus de la limite, et les laisser éditer. L'exemple suivant peut vous aider à démarrer. Vous devez modifier les sélecteurs de façon à manipuler uniquement les zones de texte/les entrées de texte dont vous avez besoin. Et n'oubliez pas de faire les choses appropriées si la limite est mauvaise. Cet exemple définit une classe; l'attribut class vous permet de changer la couleur de la zone de texte (ou autre). Vous pourriez vouloir montrer un message ou quelque chose. La clé est de laisser l'utilisateur continuer à taper.
function checkTALength(event) {
var text = $(this).val();
if(text.length > 140) {
$(this).addClass('overlimit');
} else {
$(this).removeClass('overlimit');
}
}
function checkSubmit(event) {
if($('.overlimit', this).length > 0) { return false; }
}
$(document).ready(function() {
$('textarea').change(checkTALength);
$('textarea').keyup(checkTALength);
$('form').submit(checkSubmit);
});
Je vous suggère d'y aller avec un message de notification à la place. Vous pourriez vouloir éditer votre chaîne et la faire sous 140char mais la limite fera mal à l'édition. –