1

如何确定输入框中的文本,从左框中的像素数?可能有utf8,中文 在此处输入图像描述

4

3 回答 3

2

这可能不是最好的方法,但我想这可能是一个开始。这将返回输入元素中剩余的像素数:

function getRemainingWidth(element){
    var span = $('<span class=\"'+$(element).attr('class')+'\" style=\"visibility:hidden;\">'+$(element).val()+'</span>');
    $(document.body).append(span);
    var diff = $(element).width() - $(span).width();
    $(span).remove();
    return diff;
}
于 2012-11-28T03:18:32.420 回答
1

一种方法是创建一个span元素并将文本添加到其中。但是有一个问题:你必须将它添加到 dom 中才能得到它:

var sYourText = 'asdfafdsa, dzcvxvxc';
var oText = document.createElement('span');
oText.innerHTML = sYourText;
document.getElementsByTagName('body')[0].appendChild(oText)
console.log(oText.offsetWidth);

当然:请务必应用与您的 textarea 相同的字体。

于 2012-11-28T03:20:58.917 回答
0
$("textarea").keyup(function(){
                var s = $(this).val()
                var data = s.replace(/(\s)/g,'&nbsp;')
                console.log(data)
                $('span').html(data)
            })

我用替换的常规空格替换它,但可能需要使用 CSS 的包装问题

于 2012-11-28T03:34:30.430 回答