Проблема атрибута maxqungth jQuery с текстовыми областями - PullRequest
4 голосов
/ 25 марта 2009

В jQuery версии 1.2.3 я пытаюсь добавить узлы после элементов textarea с атрибутом 'maxlength', но это не работает:

$("textarea[@maxlength]").after("<b>Aint working</b>");

Это HTML-код:

<textarea maxlength="500">This is a test.</textarea>
<textarea maxlength="250">Yet another line.</textarea>
<textarea maxlength="125">Bar or foo, whatever.</textarea>

Странно, если я изменю атрибут maxlength, например, на rel чем это работает просто отлично!

Проверьте этот пример из реальной жизни: http://www.host2000.be/_temp/jquery_tests_counter.html

PS: мне известно о нотации [@attribute], которая больше не поддерживается в jQuery 1.3, но это не имеет отношения к проблеме.

Ответы [ 2 ]

3 голосов
/ 25 марта 2009

С вашей версией jQuery он работает только с небольшим фокусом. Неявное значение textarea имеет разные значения для разных браузеров. Например, Firefox имеет неявное значение -1. ​​

Итак, чтобы ваш скрипт работал на Firefox, вам нужно сделать следующее:

$("textarea[@maxlength!=-1]").after("<b>Aint working</b>");

Здесь вы можете найти больше информации о неявных значениях атрибута maxlength.

Наслаждайтесь!

3 голосов
/ 25 марта 2009

Снимок в темноте: это может быть потому, что maxlength не является действительным атрибутом для textareas .

РЕДАКТИРОВАТЬ: я только что попробовал ваш пример с jQuery 1.3 и удалив @, и он работал безупречно.

РЕДАКТИРОВАТЬ # 2: Используя jQuery 1.2.6, он также работает без @ ... Вы пытались удалить их?

...