限制textbox或textarea输入字符长度的JS代码

复制代码 代码如下:

  <script language=javascript>

  <!--

  String.prototype.len=function(){

  return this.replace(/[^\x00-\xff]/g,"**").length;

  }

  //Set maxlength for multiline TextBox

  function setMaxLength(object,length)

  {

  var result = true;

  var controlid = document.selection.createRange().parentElement().id;

  var controlValue = document.selection.createRange().text;

  if (controlid == object.id && controlValue != "")

  {

  result = true;

  }

  else if (object.value.len() >= length)

  {

  result = false;

  }

  if (window.event)

  {

  window.event.returnValue = result;

  return result;

  }

  }

  //Check maxlength for multiline TextBox when paste

  function limitPaste(object,length)

  {

  var tempLength = 0;

  if(document.selection)

  {

  if(document.selection.createRange().parentElement().id == object.id)

  {

  tempLength = document.selection.createRange().text.len();

  }

  }

  var tempValue = window.clipboardData.getData("Text");

  tempLength = object.value.len() + tempValue.len() - tempLength;

  if (tempLength > length)

  {

  tempLength -= length;

  //alert(tempLength);

  //alert(tempValue);

  var tt="";

  for(var i=0;i<tempValue.len()-tempLength;i++)

  {

  if(tt.len()<(tempValue.len()-tempLength))

  tt=tempValue.substr(0,i+1);

  else

  break;

  }

  tempValue=tt;

  window.clipboardData.setData("Text", tempValue);

  }

  window.event.returnValue = true;

  }

  //-->

  </script>

  然后设多行的textbox或textarea的2个属性.

  onkeypress="javascript:setMaxLength(this,100);" onpaste="limitPaste(this, 100)"

  现在好了,可以自动区分中英文了,这个方案不错,供大家分享