问题描述
我正在尝试将文本框输入字段的上限设置为280个字符,以便与Twitter共享。上限本身可以工作,但是由于某种原因,当您将文本复制并粘贴到文本框中时,告诉您剩余的字符数的计数器的行为似乎很奇怪。如果我直接键入它,它可以正常工作,但是一旦我粘贴它,如果它达到了极限,然后我删除了所有文本,字符计数将是不正确的,并且我无法弄清楚为什么?
function twitterMessageRemaining(message) {
const twitterMaxValue = 280;
if (!message) message = '';
var len = 0;
var cleanMessage = message.replace(
/\$AMF_(?:SHORT_)?PERMALINK\$?|https?:\/\/\S+/gi,function (foo) { len += 20; return ''; }
);
len += cleanMessage.length;
// default message to 0 if text is inserted longer than
// maxTwitterValue as that text is deleted automatically
if (message.length > twitterMaxValue) return 0;
else return twitterMaxValue - len;
}
var FieldTwitter = function (field) { FieldText.call(this,field); };
$.extend(FieldTwitter.prototype,FieldText.prototype);
FieldTwitter.prototype.render = function () {
this.input = Tag('textarea',{
name: this.name,value: this.default,rows: 5,cols: 40
});
var container = wrapLabel(this.label,this.input);
// Twitter counter
var counter = Tag('span',twitterMessageRemaining(this.default));
$(counter).css({ 'margin-left': '10px' });
$(this.input).keyup(function () {
var len = twitterMessageRemaining(this.value);
counter.innerHTML = len;
});
// if the text inputted excedes the maximum allowed length by twitter
// delete any text overflow
if (this.value.length > twitterMaxValue) {
this.value = this.value.substr(0,twitterMaxValue);
return false;
}
container.appendChild(counter);
return container;
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)