Максимальная длина текстовой области не работает в IE - PullRequest
25 голосов
/ 02 февраля 2012

Я пытаюсь ограничить количество символов, вводимых в текстовой области, как показано:

<div>
 @Html.TextAreaFor(x => x.StudentName, new { @maxlength = "1000" })
</div>

Это отлично работает в Firefox и Chrome, но атрибут maxlength не работает в IE. Как мне это сделать ??

Ответы [ 4 ]

17 голосов
/ 02 февраля 2012

Атрибут maxlength не является стандартным для <textarea> в HTML 4.01. Это определено в HTML5 , но я думаю, что IE не реализует его. Чтобы он работал во всех браузерах, вы можете использовать javascript. Вот пример .

12 голосов
/ 17 декабря 2013

Вот мое решение на основе jQuery.Хорошо работает в IE9, немного неудобен в IE8.

// textarea event handler to add support for maxlength attribute
$(document).on('input keyup', 'textarea[maxlength]', function(e) {
    // maxlength attribute does not in IE prior to IE10
    // http://stackoverflow.com/q/4717168/740639
    var $this = $(this);
    var maxlength = $this.attr('maxlength');
    if (!!maxlength) {
        var text = $this.val();

        if (text.length > maxlength) {
            // truncate excess text (in the case of a paste)
            $this.val(text.substring(0,maxlength));
            e.preventDefault();
        }

    }

});

http://jsfiddle.net/hjPPn/

ссылка для IE8: http://jsfiddle.net/hjPPn/show

Поддержка встроенного браузера

Кроме того, если вам интересно, какие браузеры поддерживают maxlength: https://caniuse.com/#search=maxlength

3 голосов
/ 07 февраля 2013

Вы также можете использовать javascript, что намного проще:

<textarea  name="question" cols="100" rows="8" maxlength="500px" onKeyPress="return ( this.value.length < 1000 );"></textarea>
1 голос
/ 26 октября 2012

Используйте следующий Jquery - например, если вы хотите ограничить длину 48

$("textarea").keypress(function(e){
    var lengthF = $(this).val();

    if (lengthF.length > 48){
        e.preventDefault();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...