Как лучше всего ограничить объем текста, который пользователь может ввести в поле «textarea» на веб-странице? Речь идет о приложении ASP .NET, но предпочтительнее использовать ответ, не зависящий от платформы.
Я понимаю, что для этого, вероятно, потребуется некоторое количество javascript, поскольку я не хочу фактически выполнять `` публикацию '' с таким объемом данных, если это возможно, поскольку ASP .NET имеет верхний предел размера запроса, который он будет обслуживать (хотя я не знаю, что именно).
Так что, возможно, реальный вопрос в том, как лучше всего сделать это в javascript, который будет соответствовать следующим критериям:
-Должен работать одинаково хорошо для обоих пользователей, просто вводя данные и копируя / вставляя данные из другого источника.
- Должен быть максимально дружественным к «508 соответствию».





Самой удобной идеей мне кажется решение наподобие Twitter-one. Обеспечьте визуальную индикацию того, что пользователь перешагнул максимум, но не ограничивайте его в наборе текста.
Какой бы Javascript вы ни использовали, вам все равно придется проверять его на стороне сервера. В противном случае пользователи с отключенным Javascript смогут обойти ваш лимит.
используйте элемент управления RegularExpressionValidator в ASP.Net для проверки количества символов вместе с обычной проверкой
Да, мне нравится этот вариант по той же причине.
Как сказал Javache, вам все равно придется проверять серверную часть. Мы использовали jQuery плагин валидатора, который поддерживает максимальную длину среди тонов другого материала ...
function limit(element, max_chars)
{
if (element.value.length > max_chars)
element.value = element.value.substr(0, max_chars);
}
Как javascript, так и ...
<textarea onkeyup = "javascript:limit(this, 80)"></textarea>
Как XHTML. Замените 80 желаемым пределом. Во всяком случае, я так делаю.
Обратите внимание, что это предотвратит ввод пользователем ограничения в текстовом поле, однако пользователь все равно может обойти это, используя собственный javascript. Чтобы убедиться в этом, вы также должны проверить свой серверный язык.
Кроме того, здесь работает мой любимый метод обхода произвольной проверки ввода: паста с помощью мыши!
@recursive not, если форма также использует onblur = "limit (this, 80)"
Я использую это там, где ограничение обязательно. Он также предоставляет пользователю количество оставшихся символов.
function CountLength(vControl)
{
var strValue = vControl.value;
var vMax = 480;
var vLeft = vMax - strValue.length;
if (vLeft < 0)
{
vLeft = 0;
}
var vMessage = returnObjById('TextCounter');
if (document.all)
{
vMessage.innerText = vLeft + ' characters remaining.';
}
else
{
vMessage.textContent = vLeft + ' characters remaining.';
}
if (vLeft == 0)
{
vControl.value = vControl.value.substring(0, vMax);
}
}
Единственное, о чем я бы беспокоился с визуальным индикатором, - это то, насколько он будет соответствовать стандарту 508. Что с этим сделает программа чтения с экрана?
Я не слишком хорошо знаком с программами чтения с экрана. Я предполагаю, что, если не будет обратной публикации, программа чтения с экрана все равно будет читать исходный текст, поскольку осталось 480 символов. Интересно, как они справляются с ajax?
jQuery также предоставляет здесь параметры. Параметры, параметры и параметры.
Мне нравится этот вариант, потому что он автоматически выполняет проверку как на стороне сервера, так и на стороне клиента.