none
ie10 textarea getAttribute возвращает null RRS feed

Ответы

  • В IE 8, 9, 10 - ta.getAttribute('maxLength') вернет значение maxlength если оно явно установлено <textarea id="ta"  maxLength="6"></textarea>.

    Если явно не установлено <textarea id="ta"></textarea>, то всегда будет null.

    В IE 7 null будет в обоих случаях. То-есть в IE 7 этому атрибуту нельзя присвоить значение из разметки. 

    Вообще, maxlength для <textarea> работает только в IE10 (т. е. реально ограничивает количество вводимых символов).

    Создать и получить maxlength в IE7 можно, например так:

    <textarea id="ta"  maxLength="6"></textarea>
    <script>
    	if (ta.getAttribute('maxLength') == null)
    		ta.setAttribute('maxLength', 6);
    	
    	console.log("maxlength: ", ta.getAttribute('maxLength'));
    </script>

    8 апреля 2013 г. 6:22
  • Мне кажется что maxlength, это что то вроде "зарезервированного атрибута" в IE 7... или просто баг. В любом случае, не удается присвоить значение этому атрибуту из разметки. Вообще maxlength для <textarea> появился только в HTML5 и по идее в IE 7 атрибут maxlength должен вести себя как обычный пользовательский атрибут, например, то же "ml". Но это же IE...

    ps: Можно еще вот такой код написать:

    <textarea id="ta" maxlen="6" maxlength="6"></textarea>
    <script>
    	var maxLength = ta.getAttribute('maxLength') || ta.getAttribute('maxLen') || 6;
    	console.log("maxlength: ", maxLength);
    </script>

    8 апреля 2013 г. 7:43

Все ответы

  • Только в IE10 это не работает?
    7 апреля 2013 г. 19:22
    Модератор
  • да, ie6-ie9 без проблем
    8 апреля 2013 г. 4:30
  • Странно, у меня так работает:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <textarea id='ta' maxlength='3000'></textarea>
          <script type="text/javascript">
            var ta = document.getElementById('ta');
            var v = ta.getAttribute('maxlength');
            alert(v);
          </script>
        </div>
        </form>
    </body>
    </html>

    8 апреля 2013 г. 5:49
    Модератор
  • хм...

    может с доктайп связано?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html><head>

    <script>

    function TATitle(obj){
      var mlen=obj.getAttribute("maxlength");
      obj.title="Максимальное количество символов-"+mlen+", введено-"+obj.value.length;
    }

    </script>

    </head>

    <body>

    <form>

    <textarea style='width:100%;' rows=20 cols=20 class='f-edittextarea' wrap='soft' maxlength='3072' onmouseover='TATitle(this);' onkeypress='return TAMaxLength(this,1);' onpaste='return TAMaxLength(this,2);'  name='f_10245' >

    </form>

    </body></html>

    8 апреля 2013 г. 6:21
  • В IE 8, 9, 10 - ta.getAttribute('maxLength') вернет значение maxlength если оно явно установлено <textarea id="ta"  maxLength="6"></textarea>.

    Если явно не установлено <textarea id="ta"></textarea>, то всегда будет null.

    В IE 7 null будет в обоих случаях. То-есть в IE 7 этому атрибуту нельзя присвоить значение из разметки. 

    Вообще, maxlength для <textarea> работает только в IE10 (т. е. реально ограничивает количество вводимых символов).

    Создать и получить maxlength в IE7 можно, например так:

    <textarea id="ta"  maxLength="6"></textarea>
    <script>
    	if (ta.getAttribute('maxLength') == null)
    		ta.setAttribute('maxLength', 6);
    	
    	console.log("maxlength: ", ta.getAttribute('maxLength'));
    </script>

    8 апреля 2013 г. 6:22
  • да..

    доктайп не повлиял на результат

    но 

    <textarea id='ta' maxlength='3000' ml='3000'></textarea>

    ta.getAttribute('maxlength') - возвращает null

    ta.getAttribute('ml') - возвращает 3000

    менял maxlength и maxLength

    getAttribute('maxlength') и getAttribute('maxLength') выдают null

    8 апреля 2013 г. 7:17
  • А какая у вас винда и IE, случае не RC, в которых вроде были такие баги.
    8 апреля 2013 г. 7:26
    Модератор
  • win 8 pro

    ie 10

    версия обновления ие 10.0.3

    8 апреля 2013 г. 7:29
  • Мне кажется что maxlength, это что то вроде "зарезервированного атрибута" в IE 7... или просто баг. В любом случае, не удается присвоить значение этому атрибуту из разметки. Вообще maxlength для <textarea> появился только в HTML5 и по идее в IE 7 атрибут maxlength должен вести себя как обычный пользовательский атрибут, например, то же "ml". Но это же IE...

    ps: Можно еще вот такой код написать:

    <textarea id="ta" maxlen="6" maxlength="6"></textarea>
    <script>
    	var maxLength = ta.getAttribute('maxLength') || ta.getAttribute('maxLen') || 6;
    	console.log("maxlength: ", maxLength);
    </script>

    8 апреля 2013 г. 7:43
  • "win 8 pro ie 10" - с этим ясно, а версия RTM или RC? Вроде текущая релизная версия это 10.0.9200, попробуйте обновить её.
    8 апреля 2013 г. 7:49
    Модератор
  • А может быть у вас браузер в режиме совместимости работает?

    В Средствах разработчика (F12) посмотреть можно:

    8 апреля 2013 г. 8:10
  • с версией RTM и RC озадачили - не знаю

    версия ие 10.0.9200.16519

    спасибо за ответы, пойдем в обход по примеру Дмитрия

    8 апреля 2013 г. 8:15
  • Дмитрий,

    А эта ошибка с сертификатом только на этом сайте происходит?



    10 апреля 2013 г. 7:24
    Модератор