Текстовая область maxlength IE выпуск - PullRequest
1 голос
/ 16 марта 2012

У меня есть этот код, который отлично работает на всех браузерах, но он не работает на IE. Не уверен причина. Кто-нибудь есть идеи, пожалуйста? Вот демо на Jsfiddle демо

<textarea name="detail" class="words"></textarea>

$(words).keyup(function() {

            var maxWords = 24;
            var a = words.val().split(' ');
            var word=0, i=0;
            for(; (i<a.length) && (word<maxWords); ++i)
            if(a[i].length) ++word;
            maxL = a.splice(0,i).join(' ');

            var wordsLimit = words.val().split(" ").length;
            var charLimit = $.trim($(".words"));
            maxLength = maxL.replace(/\s/g, '');

            if(wordsLimit > 25) {
                $(this).next('span').remove();
                $(this).after('<span class="error">*Max word limit 25</span>');
                $(this).attr('maxlength',maxL.length)
            } else {
                $(this).removeAttr('maxlength') 
            }
        });

Ответы [ 2 ]

1 голос
/ 16 марта 2012

От Кевина Б: http://jsfiddle.net/5Zd3V/9/

$(words).keypress(function(e) {
    var maxWords = 4,
        wordLimit = words.val().match(/\S+/g),
        isNoneWhite = String.fromCharCode(e.which).match(/\s/i),
        limitReached = wordLimit ? wordLimit.length >= maxWords && isNoneWhite : false;

    words.next('span.error').text(
        limitReached ? '*Max word limit ' + maxWords : ''
    );

    return !limitReached;
});​

Подумайте, единственное, чего вам, ребята, не хватало, это убедиться, что набираемый персонаж НЕ создает новое слово (isNonWhite)

0 голосов
/ 16 марта 2012

IE не поддерживает атрибут maxlength в текстовых областях.

Попробуйте это ( updated ):

words.keypress(function(e) {
    var maxWords = 4;
    var wordCount = words.val().match(/\S+/g);
    wordCount = wordCount ? wordCount.length : 0;
    if (wordCount > maxWords && e.which != 8) {
        words.next('span').remove();
        words.after('<span class="error">*Max word limit ' + maxWords + '</span>');
        return false;
    }
});​

Демонстрация: http://jsfiddle.net/5Zd3V/8/

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