maxlength属性在IE中不起作用

时间:2013-07-29 07:30:33

标签: javascript jquery html

在我的函数内的js文件中,我正在准备这样的

var x = '<span class="someclass">
         <textarea class="editField" maxlength="60">
         </textarea>      
         </span>';

这里我通过使用maxlength属性来限制textarea大小, 它不适用于IE。

5 个答案:

答案 0 :(得分:1)

在所有浏览器中maxlength都不支持

<textarea>。无论如何,我认为实际上限制用户输入他们想要的内容并不是一个好主意。告诉他们他们超过了极限,但不要把它们锁定。

答案 1 :(得分:0)

它不会。 IE10现在支持textarea上的HTML5 maxlength。 see here如果您需要限制以前的IE版本的长度,那么您将需要javascript。

答案 2 :(得分:0)

IE中不支持Maxlength,如果您想限制用户在IE中输入无限制字符,则需要使用javascript。

您可以使用以下脚本限制用户输入textarea forIE中的最大字符。

window.onload = function() { 
  var txts = document.getElementsByTagName('TEXTAREA') 

  for(var i = 0, l = txts.length; i < l; i++) {
    if(/^[0-9]+$/.test(txts[i].getAttribute("maxlength"))) { 
      var func = function() { 
        var len = parseInt(this.getAttribute("maxlength"), 10); 

        if(this.value.length > len) { 
          alert('Maximum length exceeded: ' + len); 
          this.value = this.value.substr(0, len); 
          return false; 
        } 
      }

      txts[i].onkeyup = func;
      txts[i].onblur = func;
    } 
  } 
}

你的textarea可以像:

<textarea maxlength="10"></textarea>

DEMO

答案 3 :(得分:0)

maxlength属性不是HTML 4.01中的标准。它在HTML5中定义,但我猜IE没有实现它。要使其适用于所有浏览器,您可以使用javascript。这是一个例子。请检查一下它可能会帮助你......谢谢你

window.onload = function() { 
var txts = document.getElementsByTagName('TEXTAREA') 

for(var i = 0, l = txts.length; i < l; i++) {
    if(/^[0-9]+$/.test(txts[i].getAttribute("maxlength"))) { 
    var func = function() { 
    var len = parseInt(this.getAttribute("maxlength"), 10); 

    if(this.value.length > len) { 
      alert('Maximum length exceeded: ' + len); 
      this.value = this.value.substr(0, len); 
      return false; 
    } 
  }

   txts[i].onkeyup = func;
   txts[i].onblur = func;
  } 
 } 
}

答案 4 :(得分:0)

实际上没有用来限制用户自己打字。除非你不测试到达服务器的长度(你真的应该),否则这不会产生任何影响。

我认为Kolink说的是,不要试图限制用户打字,但你可以告诉他,它的输入不会被接受,因为它超出了。