如何限制多行输入框的内容的长度

我们知道有的时候必须对文本输入框的输入长度进行限制,我们可以通过很简单的maxlength 对Text 和 Password类型的输入框的输入长度进行限制,可是当我们对TextArea 使用maxlength 使用maxlength属性的时候,我们遗憾的发现,这个属性在textarea中是不起作用的有没有办法呢?答案是肯定的,有!就是使用HTC的技术,什么是HTC??简单的说,htc就是HTML Component,豆腐言语表达能力不强,我们看看下面的例子就可以了:

test.html:
  <form method="POST">
  <p><input type="text" size="30" maxlength="50" name="T1">
  <textarea name="S1" rows="4" cols="30" maxlength="50" style="behavior:url(maxlength.htc)"></textarea>
  </form>

大家注意到 以前很少见过 这样的 用法: style="behavior:url(maxlength.htc)" 我们再看看下面的htc 的内容

<PUBLIC:COMPONENT id="bhvMaxlength" urn="maf:Maxlength">
  <PUBLIC:PROPERTY name="maxLength" />
  <PUBLIC:ATTACH event="onkeypress" handler="doKeypress" />
  <PUBLIC:ATTACH event="onbeforepaste" handler="doBeforePaste" />
  <PUBLIC:ATTACH event="onpaste" handler="doPaste" />

<SCRIPT language="JScript">
  // Keep user from entering more than maxLength characters
  function doKeypress(){
  if(!isNaN(maxLength)){
  maxLength = parseInt(maxLength);
  var oTR = element.document.selection.createRange();
  // Allow user to type character if at least one character is selected
  if(oTR.text.length >= 1)
  event.returnValue = true;
  else if(value.length > maxLength-1)
  event.returnValue = false;
  }
  }
  // Cancel default behavior
  function doBeforePaste(){
  if(!isNaN(maxLength))
  event.returnValue = false;
  }
  // Cancel default behavior and create a new paste routine
  function doPaste(){
  if(!isNaN(maxLength)){
  event.returnValue = false;
  maxLength = parseInt(maxLength);
  var oTR = element.document.selection.createRange();
  var iInsertLength = maxLength - value.length + oTR.text.length;
  var sData = window.clipboardData.getData("Text").substr(0,iInsertLength);
  oTR.text = sData;
  }
  }
  </SCRIPT>

</PUBLIC:COMPONENT>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值