当前位置: 首页 > >

文本域

textarea称文本域,又称文本区,即有滚动条的多行文本输入控件,在网页的提交表单中经常用到。与单行文本框text控件不同,它不能通过maxlength属性来限制字数,为此必须寻求其他方法来加以限制以达到预设的需求。

通常的做法就是使用JavaScript脚本语言来实现对textarea文本域的字数输入限制,简单而实用。假设我们有一个id为 txta1 的textarea文本区,我们可以通过以下代码限制它的键盘输入字数为10个字(汉字或其他小角字符):

<script language="javascript" type="text/ecmascript">

window.onload = function()

{

document.getElementById('txta1').onkeydown = function()

{

if(this.value.length >= 10)

event.returnValue = false;

}

}

</script>

它的原理是通过对keydown(键盘键位按下)事件对指定id号的文本区进行监测,它只能限制键盘输入,如果用户通过鼠标右键粘贴剪切板中的文本,它无法控制字数。试看以下效果,请尝试用键盘输入:

速度速度分散对

通过键盘输入,以上文本区只能输入10个字。但是,我们的目的并没有达到!请随便复制一些文本,试着用鼠标右键粘贴,看看发生了什么。

你可以在网上找到类似上述的其他JS脚本,它们不管多么优秀,其原理都是一样的,通过对keydown、keyup或keypress之类的键盘键位操作事件来监控文本区的输入,无法防止鼠标右键的粘贴,为此,如果一定要真正地限制textarea的字数,我们还得为网页加另一把锁——禁用鼠标右键,这无疑得付出额外的开销,同时也可能是网页制作者不一定愿意做的。其实,还有一个更简单的方法,使用onpropertychange属性。

onpropertychange可以用来判断预定元素的value值,当元素的value值发生变化时判断事件就会被触发,仅关心被监测元素的value值,避开了输入的来源,从而可以比较理想地达成我们的限制字数这一目的。它属于JS范畴,可以在表单方框区代表中嵌套使用,以下是代码和效果样式,可以像上面那样测试输入,你会发现它真正达到目的:不管用什么方式输入,它只能输入100个字(汉字或其他小解符号):

代码:

<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>



友情链接: 传奇百科网 招聘百科网 非凡百科网 游艇百科网 口红百科网 创业百科网 软木百科网