利用HTC技术限制多行输入框的内容的长度

转载 2004年07月17日 16:16:00
 

/*
豆腐制作 都是精品
http://www.asp888.net 豆腐技术站
如转载 请保留完整版权信息
*/
我们知道有的时候必须对文本输入框的输入长度进行限制,我们可以通过很简单的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>

关于htc 的内容讲解在 MSDN 站点上是非常详细的,有兴趣的朋友可以到http://msdn.microsoft.com/workshop/components/htc/reference/htcref.asp

作者:豆腐(原创) 

输入框禁止输入特殊字符串,限制输入文字长度

在开发中经常会遇到一些输入框禁止用户输入特殊字符的情况。最近总结了一下。 方法一:如果只是限制少量特殊字符的话可以用以下方法进行判断是否包含textField.text rangeOfString:...
  • ProMonkeys
  • ProMonkeys
  • 2017年07月07日 09:49
  • 623

iOS之UITextField对输入的内容的长度限制和内容限制

UITextField对输入的内容的长度限制和内容限制
  • wuzesong
  • wuzesong
  • 2016年05月17日 11:08
  • 2935

【JavaScript】——限制文本框输入内容

js限制文本框input只能输入数字
  • u010164936
  • u010164936
  • 2016年08月11日 15:48
  • 1141

如何更好地限制一个UITextField的输入长度

要限制一个UITextField的输入字数(参考链接),首先想到的应该是通过 UITextFieldDelegate 的代理方法来限制: - (BOOL)...
  • jasonblog
  • jasonblog
  • 2014年04月15日 16:55
  • 98683

js限制textarea内容长度

js限制textarea内容长度 全文转载自 http://hi.baidu.com/java_workplace/blog/item/03e2910be2003921e824887f.ht...
  • wy978651775
  • wy978651775
  • 2014年11月19日 09:34
  • 4424

angular输入框的长度限制

一般来说前端界面少不了一两个输入框,这篇说说输入框字体长度限制的问题 准备工作 1、安装模块 npm install ng2-validation –save 2、配置*.module.t...
  • ma15732625261
  • ma15732625261
  • 2017年11月05日 20:37
  • 149

Ext.Net/ExtJs:关于TextField控件内size、maxLength控制文本框输入字符长度属性失效问题分析以及解决方案

今天发现这样一个关于Ext.Net内TextField文本框设置属性MaxLength、Size、MaxLengthText均失效问题,设置了此属性,依然可以无限制地输入文本信息。无奈之余,网上搜索了...
  • Fupengyao
  • Fupengyao
  • 2016年09月13日 09:36
  • 2129

js 限制输入框的字节数,中文两个字节,英文字母一个字节

也许在网上有很多类似的文章,但是这里大家应该知道,js里面,中文和字母的长度都是1,但是数据库不知道呀,数据库很多都是按照字节来的,所以,控制输入框的字节数看来比长度限制更为重要。 提出问题: 1、限...
  • wzgdjm
  • wzgdjm
  • 2016年03月14日 17:03
  • 1859

iOS开发陷阱之UITextField中文输入长度的限制

有一个输入框,输入框内输入文字,文字字数限制在20字。我采用了UITextField作为我的输入框控件,并且在委托方法: #define kMaxLength 20 - (BOOL)textFiel...
  • LVXIANGAN
  • LVXIANGAN
  • 2015年08月29日 13:07
  • 12580

限制EditText的内容长度

EditText editText = (EditText)findViewById(R.id.folder_icon_name); editText.setFilters(new InputFilt...
  • chenshijun0101
  • chenshijun0101
  • 2014年03月27日 17:59
  • 3384
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用HTC技术限制多行输入框的内容的长度
举报原因:
原因补充:

(最多只允许输入30个字)