Ошибка в методе Internet Explorer 7 element.getAttribute - PullRequest
2 голосов
/ 20 июля 2011

Я использую счетчик длины для textareas для веб-сайта (в стиле твиттера).Я использую код, найденный здесь http://www.codefromjames.com/wordpress/?p=15, но, похоже, не работает в IE7.Я проследил проблему до проверки атрибута "maxlength" в элементе.Он ожидает, что он будет нулевым, если атрибут не найден, но IE7 возвращает число (я думаю, это максимальная длина, разрешенная браузером или стандартом HTML, я не знаю).Вот пример, который вы можете попробовать:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
  <head>
  </head>
  <body>
    <input id="test"></input>
  </body>
    <script type="text/javascript">
var element = document.getElementById("test");
alert(element.getAttribute("maxlength"));
</script>
</html>

Попробуйте выполнить это на IE7, и вы обнаружите, что он дает число вместо нуля.

Точная версия IE7 - 7.0.5703.13

Должен ли я считать это ошибкой IE7 или она работает, как и ожидалось?

Приветствия!

1 Ответ

0 голосов
/ 20 июля 2011

Вы можете проверить element.attributes.maxLength.specified, чтобы узнать, действительно ли maxLength определено пользователем.

var element = document.getElementById('test');
var maxLength, defaultLength = 100;

if (element.attributes.maxLength && element.attributes.maxLength.specified) {
 maxLength = element.attributes.maxLength.nodeValue || defaultLength;
} else {
 maxLength = defaultLength;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...