用jsp如何在客户端限制多行文本框的输入长度?最好可以提示用户还可以在输入多少字符? 用jsp如何在客户端限制多行文本框的输入长度?最好可以提示用户还可以在输入多少字符? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【zylt】截止到2008-07-21 10:16:54的历史汇总数据(不包括此帖):发帖的总数量:3 发帖的总分数:50 每贴平均分数:16 回帖的总数量:2 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:3 结贴的总分数:50 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:0.00 % 无满意结分率:0.00 % 敬礼! 1. 两种方式,一种格式纯粹的客户端验证使用js 一把用js的正则表达式,来判断输入子字符的长度 甚至输入的是怎样的字符2.是服务器端验证,当然可以把信息反馈给客户端的。。 最好还是用js在客户端实现如果在服务端实现的话,动态提示需要不停的postback或callback 建议你在onKeydwon,onkeyup事件里写判断.onkeydown之前判断一下长度是否还可以输入,onkeyup之后更新一个区域,提示还有多少字符可以输入 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title> 无标题文档 </title></head><body><textarea cols="60" rows="10" id="text1"></textarea><br>剩余字符:<span id="textleft">20</span></body></html> <script language="javascript">var otext = document.getElementById("text1");var otextleft = document.getElementById("textleft");var re = /[^\x00-\xff]/g;var maxLength = 20;window.onload = function(){ if(document.all) otext.onpropertychange = textleft; else otext.onkeypress = textleft;}function textleft(){ var str = otext.value; str = str.replace(re,"xx");//中文字符当2个字符处理 如果不用的话主是掉本行 otextleft.innerHTML = maxLength - str.length; if((maxLength - str.length)<0){ otext.value=otext.value.substr(0,otext.value.length-1); }} <div> <textarea id="TextArea1" cols="20" rows="20" onkeyup="check()"></textarea> <label id="Label1"></label> </div> <script type="text/javascript"> function check() { var textLimit = 200; var otextarea = document.getElementById("TextArea1"); var olabel = document.getElementById("Label1"); var textLength = otextarea.value.length; if(textLength <= textLimit) { olabel.innerHTML = (textLimit - textLength) + "remains"; } else { olabel.innerHTML = (textLength - textLimit) + "overflow" } } </script> 我原来写的一段代码和你的意思差不多function qingchu() { var str = document.getElementById("bz").value; if(str == "100字以内") { document.getElementById("bz").value = ""; }else { return false; }}function jiancechangdu() { var str = document.getElementById("bz").value; var len = str.length; if(len < 101) { document.getElementById("zifu").value = len + "字符"; }else { document.getElementById("bz").value = str.substr(0,100); document.getElementById("zifu").value = "100字符"; }}<td> <textarea name="bz" id="bz" style="width: 200px;" onkeyup="jiancechangdu();" onchange="jiancechangdu();" onfocus="qingchu();" oncontextmenu="self.event.returnValue=false"> 100字以内 </textarea></td><td> <input name="zifu" id="zifu" readonly="readonly" style="width: 40px; border: 0px;"></td> 是对的,建议用第一种,对控件的onkeypress编写事件判断,同事判断汉字等双字节问题。 <td> <textarea name="bz" id="bz" style="width: 200px;" onkeyup="check(this);" onchange="check(this);" > 100字以内 </textarea></td><script type="text/javascript"> String.prototype.getLength = function(){ //得到字符串的真实长度 var l=this.length; var n=l for (var i=0;i<l;i++){ if (this.charCodeAt(i)<0||this.charCodeAt(i)>255) n++ } return n } function check(obj){ var max=obj.style.maxlength; if(obj.value.getLength()>max){ alert("最多可输入"+max/2+"字,请重新输入!"); obj.focus(); obj.select(); } } </script> 去掉了一些看不懂得,就好用了。<html><head><script language="javascript">var maxLength = 20;function textleft(){ var otext = document.getElementById("text1"); var otextleft = document.getElementById("textleft"); var str = otext.value; otextleft.innerHTML = maxLength - str.length;}</script></head><body><textarea cols="60" rows="10" id="text1" onkeyup="textleft()"></textarea><br>remain:<span id="textleft">20</span></body></html> 启动shh项目时报错了,请高人指点下吧 打扰各位休息了,来帮个忙 谁有《Hibernate应用开发完全手册》光盘高分相送 filter 一个很有挑战性的问题,呵呵 求教 请问:JSF是如何连接数据库的??? 关于JavaMail的问题 为什么没有任何结果 JSP操作数据问题 关于IwebOffice2003与ssh2整合的问题 jsp页面显示空白
楼主【zylt】截止到2008-07-21 10:16:54的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:50 每贴平均分数:16
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:3 结贴的总分数:50
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
2.是服务器端验证,当然可以把信息反馈给客户端的。。
如果在服务端实现的话,动态提示需要不停的postback或callback
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> 无标题文档 </title></head><body>
<textarea cols="60" rows="10" id="text1"></textarea><br>
剩余字符:<span id="textleft">20</span>
</body>
</html>
<script language="javascript">
var otext = document.getElementById("text1");
var otextleft = document.getElementById("textleft");
var re = /[^\x00-\xff]/g;
var maxLength = 20;
window.onload = function(){
if(document.all)
otext.onpropertychange = textleft;
else
otext.onkeypress = textleft;
}
function textleft()
{
var str = otext.value;
str = str.replace(re,"xx");//中文字符当2个字符处理 如果不用的话主是掉本行
otextleft.innerHTML = maxLength - str.length;
if((maxLength - str.length)<0){
otext.value=otext.value.substr(0,otext.value.length-1);
}
}
<div>
<textarea id="TextArea1" cols="20" rows="20" onkeyup="check()"></textarea>
<label id="Label1"></label>
</div>
<script type="text/javascript">
function check()
{
var textLimit = 200;
var otextarea = document.getElementById("TextArea1");
var olabel = document.getElementById("Label1");
var textLength = otextarea.value.length;
if(textLength <= textLimit)
{
olabel.innerHTML = (textLimit - textLength) + "remains";
}
else
{
olabel.innerHTML = (textLength - textLimit) + "overflow"
}
}
</script>
和你的意思差不多function qingchu() {
var str = document.getElementById("bz").value;
if(str == "100字以内") {
document.getElementById("bz").value = "";
}else {
return false;
}
}
function jiancechangdu() {
var str = document.getElementById("bz").value;
var len = str.length;
if(len < 101) {
document.getElementById("zifu").value = len + "字符";
}else {
document.getElementById("bz").value = str.substr(0,100);
document.getElementById("zifu").value = "100字符";
}
}
<td>
<textarea name="bz" id="bz" style="width: 200px;" onkeyup="jiancechangdu();" onchange="jiancechangdu();" onfocus="qingchu();" oncontextmenu="self.event.returnValue=false">
100字以内
</textarea>
</td>
<td>
<input name="zifu" id="zifu" readonly="readonly" style="width: 40px; border: 0px;">
</td>
<textarea name="bz" id="bz" style="width: 200px;" onkeyup="check(this);" onchange="check(this);" >
100字以内
</textarea>
</td>
<script type="text/javascript">
String.prototype.getLength = function(){
//得到字符串的真实长度
var l=this.length;
var n=l
for (var i=0;i<l;i++){
if (this.charCodeAt(i)<0||this.charCodeAt(i)>255)
n++
}
return n
}
function check(obj){
var max=obj.style.maxlength;
if(obj.value.getLength()>max){
alert("最多可输入"+max/2+"字,请重新输入!");
obj.focus();
obj.select();
}
} </script>
<html>
<head>
<script language="javascript">
var maxLength = 20;
function textleft()
{
var otext = document.getElementById("text1");
var otextleft = document.getElementById("textleft");
var str = otext.value;
otextleft.innerHTML = maxLength - str.length;
}
</script>
</head>
<body>
<textarea cols="60" rows="10" id="text1" onkeyup="textleft()"></textarea><br>
remain:<span id="textleft">20</span>
</body>
</html>