Проблема с атрибутом jQuery maxlength с текстовыми областями

StackOverflow https://stackoverflow.com/questions/681434

Вопрос

С 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, но это не имеет никакого отношения к проблеме.

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

Редактировать:Я только что попробовал ваш пример с jQuery 1.3 и удалил @, и он сработал безупречно.

ПРАВКА № 2:Используя jQuery 1.2.6, он также работает без @...Вы пробовали их удалить?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top