Каков наилучший способ ограничить объем текста, который может быть введен в текстовую область? - PullRequest
4 голосов
/ 18 декабря 2008

Как лучше всего ограничить объем текста, который пользователь может ввести в поле «textarea» на веб-странице? Рассматриваемое приложение - ASP .NET, но предпочтительным является независимый от платформы ответ.

Я понимаю, что для этого, вероятно, потребуется некоторое количество javascript, поскольку я не хочу на самом деле выполнять «публикацию» с таким количеством данных, если это возможно, поскольку ASP .NET имеет верхний предел размера запросить, чтобы он работал (хотя я не знаю, что именно).

Так что, возможно, реальный вопрос в том, как лучше всего это сделать в javascript, который будет отвечать следующим критериям:

- Должен работать одинаково хорошо для обоих пользователей, просто вводя данные и копируя / вставляя данные из другого источника.

-Должен быть максимально дружественным по отношению к 508.

Ответы [ 6 ]

11 голосов
/ 18 декабря 2008
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 Чтобы убедиться, что вы также должны проверить язык вашего сервера.

6 голосов
/ 18 декабря 2008

используйте элемент управления RegularExpressionValidator в ASP.Net для проверки количества символов наряду с обычной проверкой

3 голосов
/ 18 декабря 2008

Самой удобной для меня идеей кажется решение вроде Twitter-one. Обеспечьте визуальную индикацию того, что пользователь пересек максимум, но не ограничивайте его в наборе текста.

Какой бы Javascript вы ни использовали, вам все равно придется проверять его на стороне сервера. В противном случае пользователи с отключенным Javascript смогут обойти ваш лимит.

2 голосов
/ 18 декабря 2008

Как сказал Javache, вам все равно придется проверять серверную часть. Мы использовали плагин валидатора jQuery , который поддерживает максимальную длину среди тонов других вещей ...

1 голос
/ 18 декабря 2008

Я использую это, где предел является обязательным. Он также предоставляет пользователю количество оставшихся символов.

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);
        }
    }
0 голосов
/ 10 января 2009

jQuery также предоставляет некоторые опции здесь. Опции, опции и опции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...