手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >一个基于jquery的文本框记数器
一个基于jquery的文本框记数器
摘要:复制代码代码如下:/**长度跟踪器*v2.1.0*bind2Id:用于显示长度变化的元素的id*max:最大长度*msgWrap:提示信息(...

复制代码 代码如下:

/*

*长度跟踪器

*v2.1.0

*bind2Id:用于显示长度变化的元素的id

*max:最大长度

*msgWrap:提示信息(必须要有一个"-"占位符)

*eg:$('#input').lenTracer({bind2Id:'myTracer',max:150,msgWrap:'您还可以输入-个字符'});

*author:liujg1015@gmail.com

*/

(function ($) {

var zw_validate = function (el, option) {

this.el = $(el);

this.bindEl = false;

this.setting = {

bind2Id: false,

max: 100,

msgWrap: '您还可以输入-个字符'

};

if (option) {

$.extend(this.setting, option);

this.init();

}

};

zw_validate.prototype = {

init: function () {

var _this = this;

this.bindEl = $('#' + this.setting.bind2Id);

this.el.focus(function () { _this.start(); }).blur(function () { _this.dispose(); });

this.el.css({ paddingBottom: 20 });

this.initMsg();

},

initMsg: function () {

var wrap = this.setting.msgWrap.split('-');

this.bindEl.text(this.setting.max - this.count().total).before(wrap[0]).after(wrap[1]);

},

count: function () {

var _val = this.el.val();

var _len = _val.length;

var _rowCount = 0;

var _enterLen = 0;

var _partten = /n+/g;

if (_len > 0 && _partten.test(_val)) {

_enterLen += 3;

while ((result = _partten.exec(_val)) != null) {

if ((result.index + 1 + _enterLen) > this.setting.max) {

break;

}

_enterLen += 3;

}

_rowCount = _val.match(_partten).length;

}

return { total: (_len + _rowCount * 3), enterLen: _enterLen };

},

start: function () {

var _this = this;

_this.timer = setInterval(function () {

var _val = _this.el.val();

var _rlt = _this.count();

if (_rlt.total > _this.setting.max) {

if (_rlt.enterLen > 0) {

_this.el.val(_val.substr(0, _this.setting.max - _rlt.enterLen));

}

else {

_this.el.val(_val.substr(0, _this.setting.max));

}

_this.bindEl.text(_this.setting.max - _this.count().total);

return;

}

_this.bindEl.text(_this.setting.max - _rlt.total);

}, 300);

},

dispose: function () {

clearInterval(this.timer);

},

restore: function () {

this.bindEl.text(this.setting.max - this.el.val().length);

}

};

$.fn.extend({

lenTracer: function (option) {

return new zw_validate(this, option);

}

});

})(jQuery);

一、上面是计数器的脚本,可将脚本贴到js文件中,然后在html里面添加引用。

复制代码 代码如下:

<html>

<head>

<title>demo</title>

</head>

<body>

<table>

<tr>

<td>

标题

</td>

<td>

<input type="text" id="title" />

<span id="titlelen"></span>

</td>

</tr>

<tr>

<td>

评论

</td>

<td>

<textarea cols="5" rows="5" id="comment"></textarea>

<span id="commentlen"></span>

</td>

</tr>

</table>

<script src="../scripts/jquery.js" type="text/javascript"></script>

<script src="../scripts/lentracer.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function(){

$('#title).lenTracer({ bind2Id: titlelen, max: 50});

$('#comment).lenTracer({ bind2Id: commentlen, max: 200, msgWrap: '剩余-字' });

});

</script>

</body>

</html>

二、上面的代码是展示如何使用。

这个计数器是自己用jQuery写的,因此要依赖于jQuery库函数。能计算回车符,因为在textarea里面的回车符提交到后台后是'rn'。欢迎批评、指正。

【一个基于jquery的文本框记数器】相关文章:

总结一些js自定义的函数

jquery实现弹出层效果实例

jQuery实现限制textarea文本框输入字符数量的方法

基于jQuery实现的无刷新表格分页实例

表单的一些基本用法与技巧

jquery表单对象属性过滤选择器用法

jQuery实现延迟跳转的方法

JavaScript获取两个数组交集的方法

jQuery实现文本展开收缩特效

jQuery实现给页面换肤的方法

精品推荐
分类导航