基于jQuery的饭否输入框.

http://www.cssrain.cn/article.asp?id=1375

 

基于jQuery的饭否输入框.

相信大多数人都使用过饭否。总的来说,饭否算是国内一个不错的互联网产品。个人比较喜欢。特别是那个140字的输入框,我觉得还不错,能实时的显示 “已经输入多少字”和“还可以输入多少字”。所以,这篇文章就是来讲解如何制作一个类似的输入框。

1,基本布局

所需要的元素:一个标题,一个提示字数的元素,多行输入框一个,loading图片一张,提交按钮一个。
布局涉及到2个状态:"1个默认状态" 和" 1个已经超出" 的状态。
具体布局可以看下面的2个例子:
http://www.cssrain.cn/demo/fanfoutext/demo1.html
http://www.cssrain.cn/demo/fanfoutext/demo2.html

2,添加脚本

布局做好后,添加脚本就相对简单了。
很多人做这个效果的第一反应就是 使用 onkeydown或者onkeyup。我以前也是,当时遇到了很多问题。
不过上次看了国外一个代码后,我改变了思路。使用的是focus + setInterval() + +blur来实现。
具体思路就是 当鼠标获取焦点(onfoucs)后,添加一个setInterval(), setInterval()中的函数就是用来截取字符串的。当鼠标失去焦点后, 清除interval。另外需要注意的是,在focus时,需要判断 避免重复执行。
具体代码可以看Demo3:
http://www.cssrain.cn/demo/fanfoutext/demo3.html

3,ctrl+enter提交表单

这是一个很普通,但非常实用的提交方法,所以我打算添加进去。
代码如下:

$content.keydown(function(e){
if(e.ctrlKey&&e.keyCode=="13"){
...
}
})
具体代码可以也可以看Demo3:
http://www.cssrain.cn/demo/fanfoutext/demo3.html

 

4,改变成另外一种提示方式

Demo3中即使超过了,用户还是能输入。如果你打算超过后,就不让输入,那么请看Demo4:
http://www.cssrain.cn/demo/fanfoutext/demo4.html

posted @ 2009-07-14 11:12  awp110  阅读(172)  评论(0编辑  收藏  举报