У банка в Скандинавии недавно был иск, потому что клиент случайно перевел кучу денег на неправильный счет, потому что он ввел слишком много нулей в номер счета. Это сделало полученный номер счета недействительным, однако она не заметила, потому что веб-приложение молча стерло ее лишнюю цифру. Поэтому она вошла во что-то вроде
1223300045
но должен был ввести
122330045
и, следовательно, счет
122330004
получила ее деньги. Это главный недостаток юзабилити.
В случае чего-то вроде текстовой области взгляните на собственный пользовательский интерфейс комментариев StackOverflow. Он показывает вам, сколько текста находится в вашем текстовом поле, и у вас есть возможность редактировать текст, но действительно приятной особенностью является то, что вы можете печатать столько, сколько хотите, а затем редактировать до чистого предела, что дает вам говори все что хочешь. Если ваше текстовое поле стирает текст пользователя:
- Они могут не заметить, что это происходит, если они печатают, глядя на клавиатуру.
- Им нужно стереть текст, прежде чем они смогут добавить новую, более краткую формулировку
- Они будут раздражены
Таким образом, моя рекомендация - позволить пользователю печатать столько, сколько он хочет, но дать ему знать, когда он превысит ограничение, и позволить ему редактировать. Следующий пример поможет вам начать. Вы должны изменить селекторы соответствующим образом, чтобы манипулировать только теми текстовыми / текстовыми вводами, которые вам нужны. И не забывайте делать правильные вещи, если предел неверный. Этот образец устанавливает класс; Атрибут class позволяет изменить цвет текстовой области (или любой другой). Вы можете показать сообщение или что-то. Они позволяют пользователю продолжать печатать.
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);
});