..
通常,问题似乎很容易解决,最困难的证明比预期的,那就是典型的有一半是输了一天的工作摆脱重试或多或少的正统和发烧协商的网站,有人谁已经面临绝望问题。
当一个项目,我有需要限制在一个 textarea我以为我在几分钟内解决了允许的字符数,它是不是这样,我在网上找到了几种解决方案,但没有说服我到了最后,所以我决定实现自定义的东西使用jQuery的和优秀的jQueryUI特别是包progessbar组件。
Colleghiamoci到http://jqueryui.com/ ,点击按钮“下载自定义生成”在右上角。
在接下来的页面中选择有用的组件,以及我们决定采取只进度可用部件之一。

对于我们的小例子将创建一个简单的结构如下:
我们创造我们的HTML文件,给它一个有意义的名称(我们会打电话给mrw_jquery_txtcheck.html)并插入在head标签夹杂必要的:CSS文件的主题和js jQuery和jQueryUI联系。
HREF =“jquery-ui-1.8.9.custom/css/ui-lightness/jquery-ui-1.8.9.custom.css”<link rel="stylesheet" type="text/css" /> <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-1.4.4.min.js"> </ SCRIPT> <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-ui-1.8.9.custom.min.js"> </ SCRIPT>
添加在体内textarea的:
<DIV> <textarea name="limitedOne" id="limitedOne" style='width:250px;height:100px;'> </ TEXTAREA> </ DIV>
然后插入的div包含进度条和一个占位符给你一个字也多少数值的想法。
<div style="height: id="progress" 20px;"> </ DIV> 可用<P> <span id="charCounter"> 255 </ SPAN>字</ P>
现在我们可以继续写必要的功能,然后还包括它的头部标记,我们称之为check_textarea.js的代码到一个单独的文件中的JavaScript / jQuery的。
首先,定义基本变量,字符允许的,那些在开始时可有相同的值:
MAX_CHARS = 255; 剩余= MAX_CHARS;然后我们定义的函数的控制,提高进度和计数器:
checkTextareaLength函数(){
current_length ==未定义的VAR = $(“#limitedOne”)。VAL()。长度?
0:$(“#limitedOne”)VAL()长度;。
剩余=(MAX_CHARS - current_length);
如果(剩余> 0){
$(“#LimitedOne”)($("# LimitedOne VAL“)VAL()SUBSTRING(0,MAX_CHARS))。。。;
否则{}
$(“#CharCounter”)HTML(剩余);
VAR PV = Math.floor((((MAX_CHARS - 余下)/ MAX_CHARS)* 100));
$('#进展“)进度列(”价值“,PV);
}
}
让我们来分析代码:在checkTextareaLength第一线得到了使用功能VAL()jQuery的textarea的电流值,然后计算所读的长度属性输入的字符数。
在接下来的行给出的字符数目的差异。
在这一点上有2个可能性。
1。 剩余的变量是 (后拷贝/粘贴EG) 小于零的,如果块拿起了textarea的价值,它为255个字符限制使用本地JavaScript 子
$(“#LimitedOne”)($("# LimitedOne VAL“)VAL()SUBSTRING(0,MAX_CHARS))。。。;
2。 剩下的就是大于零,否则块在第一跨度与左字符数提高:
$(“#CharCounter”)HTML(剩余);
然后,函数计算之间的最大字符数可用,包括那些目前,图书馆的功能回合的结果Math.floor(下)到最近的比例 :
VAR PV = Math.floor((((MAX_CHARS - 余下)/ MAX_CHARS)* 100));
在这一点上,我们只能在指定的进度发现的价值
$('#进展“)进度列(”价值“,PV);
让我们写的是在DOM准备好执行的代码。
我们初始化的进度,并结合开展活动要拦截:该按键,在mouseout的,变化和模糊。
监视所有拦截事件,用户应使用复制/粘贴。
请注意该函数调用是第二个百分之几推迟通过本机的功能setTimeout的 ,所以一定要总是在适当的时间值,当用户完成输入。
$(函数(){
$(“#进展”)进度列();
$(“#LimitedOne。”)绑定(“按键改变mouseout的模糊”,函数(){
的setTimeout(“checkTextareaLength()”,200);
});
});
| |
CSS(课程)
网页设计和辅助功能根据W3C CSS和XHTML。 起价29€。 |
| |
HTML(课程)
为从29€Web标记语言。 |
| |
使用Javascript(课程)
完成引导客户端脚本。 从39€。 |