0

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

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

这里我通过使用 maxlength 属性来限制文本区域的大小,它在 IE 中不起作用。

4

5 回答 5

1

maxlength并非<textarea>所有浏览器都支持。无论如何,我认为实际上限制用户输入他们想要的内容并不是一个好主意。告诉他们他们超过了限制,但不要把他们锁在外面。

于 2013-07-29T07:32:16.510 回答
0

它不会。IE10 现在支持文本区域上的 HTML5 最大长度。 如果您需要在以前的 IE 版本中限制长度,请参见此处 ,那么您将需要 javascript。

于 2013-07-29T07:33:15.427 回答
0

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

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

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>

演示

于 2013-07-29T07:35:41.273 回答
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;
  } 
 } 
}
于 2013-07-29T07:36:33.290 回答
0

约束用户自己打字实际上是没有用的。除非您不测试到达服务器的长度(您确实应该),否则这不会有任何区别。

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

于 2013-07-29T07:41:27.510 回答