【www.gdgbn.com--jquery】
jquery 计算文本框输入字符数代码
asp教程x文件:
引入js
<script type="text/网页特效" src="../script/maxlength.js"></script>
因为是限制textarea控件,所以必须使用一个hidden input来控制长度,原因是textarea的maxlength属性取值为用户实际输入的字符长度。如果是限制input的输入长度,就不需要了。
最多3000字,还可输入3000字
jquery引用:
<script type="text/javascript">
$(document).ready(function() {
$("#<%=positioninfo.clientid%>").bind("propertychange", function() {
$(this).maxlength({
"feedback": "descsize","useinput": true
});
});
});
</script>
jquery代码
(function ($) {
$.fn.maxlength = function (settings) {
if (typeof settings == "string") {
settings = { feedback : settings };
}
settings = $.extend({}, $.fn.maxlength.defaults, settings);
function length(el) {
var parts = el.value;
if ( settings.words )
parts = el.value.length ? parts.split(/s+/) : { length : 0 };
return parts.length;
}
return this.each(function () {
var field = this,
$field = $(field),
$form = $(field.form),
limit = settings.useinput ? $form.find("#"+settings.maxlength).val() : $field.attr("maxlength"),
$charsleft = $form.find("#"+settings.feedback);
function limitcheck(event) {
var len = length(this),
exceeded = len >= limit,
code = event.keycode;
if ( !exceeded )
return;
switch (code) {
case 8: // allow delete
case 9:
case 17:
case 36: // and cursor keys
case 35:
case 37:
case 38:
case 39:
case 40:
case 46:
case 65:
return;
default:
return settings.words && code != 32 && code != 13 && len == limit;
}
}
var updatecount = function () {
var len = length(field),
diff = limit - len;
$charsleft.html( diff || "0" );
// truncation code
if (settings.hardlimit && diff < 0) {
field.value = settings.words ?
// split by white space, capturing it in the result, then glue them back
field.value.split(/(s+)/, (limit*2)-1).join("") :
field.value.substr(0, limit);
updatecount();
}
};
$field.keyup(updatecount).change(updatecount);
if (settings.hardlimit) {
$field.keydown(limitcheck);
}
updatecount();
});
};
$.fn.maxlength.defaults = {
useinput : false,
hardlimit : true,
feedback : "charsleft",
words : false,
maxlength: "maxlength"
};
})(jquery);