关注公众号:青山有路

js限制文字个数

js限制文字个数

(function ($) {

$.fn.limitTextarea = function (opts) {

var defaults = {

maxNumber: 520, //允许输入的最大字数

position: ‘bottom’, //提示文字的位置,top:文本框上方,bottom:文本框下方

onOk: function () { }, //输入后,字数未超出时调用的函数

onOver: function () { } //输入后,字数超出时调用的函数

}

var option = $.extend(defaults, opts);

this.each(function () {

var _this = $(this);

var info = ‘<div style=”margin-left:620x; margin-top:5px;” id=”info’ + option.maxNumber + ‘”>还可以输入<b>’ + (option.maxNumber – getByteLen(_this.val())) + ‘</b>字符</div>’;

var fn = function () {

var $info = $(‘#info’ + option.maxNumber + ”);

var extraNumber = option.maxNumber – getByteLen(_this.val());

 

if (extraNumber >= 0) {

$info.html(‘还可以输入<b>’ + extraNumber + ‘</b>个字符’);

option.onOk();

} else {

$info.html(‘还可以输入<b>0</b>个字符’);

option.onOver();

}

};

switch (option.position) {

case ‘top’:

_this.before(info);

break;

case ‘bottom’:

default:

_this.after(info);

}

//绑定输入事件监听器

if (window.addEventListener) { //先执行W3C

_this.get(0).addEventListener(“input”, fn, false);

} else {

_this.get(0).attachEvent(“onpropertychange”, fn);

}

if (window.VBArray && window.addEventListener) { //IE9

_this.get(0).addEventListener(“onkeydown”, function () {

var key = window.event.keyCode;

(key == 8 || key == 46) && fn(); //处理回退与删除

});

_this.get(0).addEventListener(“oncut”, fn); //处理粘贴

}

});

}

 

})(jQuery)

function getByteLen(val) {

var len = 0;

for (var i = 0; i < val.length; i++) {

if (val[i].match(/[^\x00-\xff]/ig) != null) //全角

len += 2;

else

len += 1;

}

return len;

}

function getByteVal(val, max) {

var returnValue = ”;

var byteValLen = 0;

for (var i = 0; i < val.length; i++) {

if (val[i].match(/[^\x00-\xff]/ig) != null)

byteValLen += 2;

else

byteValLen += 1;

if (byteValLen > max)

break;

returnValue += val[i];

}

return returnValue;

}

$(‘#voicetext’).limitTextarea({

maxNumber: 520, //最大字数

position: ‘bottom’, //提示文字的位置,top:文本框上方,bottom:文本框下方

onOk: function () {

$(‘#voicetext’).css(‘background-color’, ‘white’);

}, //输入后,字数未超出时调用的函数

onOver: function () {

var value = $(‘#voicetext’).val();

$(‘#voicetext’).val(getByteVal(value, 520));

 

}

});


版权所有丨如未注明 , 均为原创 , 转载请注明js限制文字个数
喜欢 (0)

Warning: Use of undefined constant PRC - assumed 'PRC' (this will throw an Error in a future version of PHP) in /www/wwwroot/gaowenjie.cc/wp-content/themes/Git-alpha/comments.php on line 17
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到