textarea称文本来自域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中马办特材突吸绝飞乙经常用到。与单行文本框text控件不同,它不能通过maxlength属性来限制字数,为此必须寻求其食布虽众周他季写头他方法来加以限制以达到预设的需求。
通常的做法就是使用JavaScript脚本语言来实现对textarea文本域的字数输入限制,来自简单而实用。假设绿金现笔带我们有一个id为 txta1 的textarea文本区,我们可以通过以下代码360百科限制它的键盘输入字数为10个字(汉字或其他小角字符):
<sc绍紧素纪气拿亚ript language="javascript" type="text/ecmascript">
window.onload = function()
乐苗假课围众{
document.getElementById('txta1')纪底亲凯非头便.onkeydown = function()
{
if(this.value.len刘油石日gth >= 10)
event.returnValue = false;
}
}
</script>
它的原理是通过对keydown(键盘键位按下)事件对指定id号的文本区进行输料收几室它绿监测,它只能限制键盘输入,如果用户通过鼠冲前标右键粘贴剪切板中的文本,它无法控制字数。试看以下效果,儿触积激坚元派最请尝试用键盘输入:
速度速度分散对
通过键盘输入,以上文本区只能输入10个字。但是,我们的目的并没有使逐同妒达到!请随便复制一些文本,试着用鼠标右键粘贴,看看发生了什么。
你可以在网上找到类似上述的其他JS脚本,它们不管多么优秀,其原理都是一样的,通过对电条香keydown、keyup或keypress之类的键盘键位操作事件来监控文本区的输入,无法防虽沙顺东班短行无虽二止鼠标右键的粘贴,为此,如果一定要真正地限制textarea的字数,我们还得为网页加另一把锁--禁用鼠标右键,这无疑得付实出额外的开销,同时也同破料无笑银顺握急可能是网页制作者不一定愿意做的。其实,还有一个更简单的方法,使用onpropertychange属性。
onpropertychange可以用来判断预定元素的value值,当元素的value境面势切宽山把础想之值发生变化时判断事件就会被触发,仅关心被监测元素的value值,避开了输入的来源,从而可以比较理想地达成我们的限制字数这一目的。它属于JS范畴,可以在表小还祖就艺火单方框区代表中嵌套使用,以下是代码和效果样式,可以像上面那样测试输入,你会发现它真正达到目的:不管用难胡月个离副保训什么方式输入,它只能输入10传面死却突想0个字(汉字或其他小解符号):
代码:
<textarea onpropertychange="if(value.length>100) value=value.substr(0,100)" class="smallArea" cols="60" name="txta" rows="8"></textarea>
样式:
当然,为了更为保险,处理表单数据的后台脚本程序还应该对提交来的数据进行再一次的检测,如果字数超出预设的数量则进行相应处理,这样才达到真正限制字数的目的。
1.没有滚动条的文本域(无边框)
<textarea style="border: 0; overflow: auto; color: #FFFFFF; background-image: url(http://expert.csdn.net/images/csdn.gif)"></textarea>
2.红色边框的文本域
<textarea style="border: #FF0000 1px solid; overflow: visible; color: #FFFFFF; background-image: url(http://expert.csdn.net/images/csdn.gif)"></textarea>
3.无边框有滚动条
<textarea style="scrollbar-face-color:#ff80ff;border:0px;background-image:url(http://expert.csdn.net/images/ad/dby3_database_120.GIF);color:#ffffff;font-size:15pt;font-weight:bold">
雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人 <br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人< br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>雨中人<br>
</textarea>
4.比较好看的一个
<input name="email" type="text" id="email" style="height:19;border-top: 1px solid #808080;border-right: 1px solid #D4D0C8;border-bottom: 1px solid #D4D0C8;border-left: 1px solid #808080;" value="" size="29">
<br>
<textarea name="content" cols="36" rows="8" id="content" style="border: 1 solid #888888;LINE-HEIGHT:18px;padding: 3px;"></textarea>
<textarea style="border: #FF0000 1px solid; overflow: visible; color: #FFFFFF; background-image: url(http://expert.csdn.net/images/csdn.gif)"></textarea>
其它:
<textarea style="border: 0; overflow: auto; color: #FFFFFF; background-image: url(http://expert.csdn.net/images/csdn.gif)"></textarea>
1、设置文本域的字体
<TEXTAREA STYLE="font-size:9pt;font-family:verdana;color:#333333">输入内容</textarea>
2、设置文本域的背景色
<TEXTAREA STYLE="background-color:#ffffff">输入内容</textarea>
3、文本域的虚线边框设置
<TEXTAREA STYLE="border:1px dotted #6CABE7;">输入内容</textarea>
4、文本域的实线边框设置
<TEXTAREA STYLE="border:1px solid #6CABE7;">输入内容</textarea>
5、文本域的点线边框设置
<TEXTAREA STYLE="border:2px dotted #6CABE7;">输入内容</textarea>
6、 设置文本域的背景图
<TEXTAREA STYLE="background-attachment: fixed; background-image: url(背景图所处位置)"></textarea>