Проблема с атрибутом jQuery maxlength с текстовыми областями
-
22-08-2019 - |
Вопрос
С 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, он также работает без @...Вы пробовали их удалить?