当我在textarea中输入
时,我可以计算字符数
function count_up(obj){
document.getElementById('numbers').innerHTML = obj.value.length;
}

<textarea name="textField" class="text_edit" id="my_text" onkeyup="count_up(this);"></textarea><br/>
<span id="numbers">0</span>
&#13;
但是当我将它加载到textarea时,我想计算文件中的字符数。这个功能还可以,但是如果我想计算文件中的字符数量,我必须在加载的文本中添加一些东西(它是这样的 直观)。我可以做些什么来解决它吗?
答案 0 :(得分:2)
textarea {
width: 100%;
height: 150px;
padding: 12px 20px;
box-sizing: border-box;
border: 2px solid #ccc;
border-radius: 4px;
background-color: #f8f8f8;
font-size: 16px;
resize: none;
}
<textarea name="" id="" cols="30" rows="10" onkeyup="countCharToMax(this)"></textarea>
<div id="charNum">0/30</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
function countCharToMax(val) {
var max = 30;
var min = 0;
var len = val.value.length;
if (len >= max) {
val.value = val.value.substring(min, max);
$('#charNum').text(len + '/'+max);
} else {
$('#charNum').text(len + '/'+max);
}
};
</script>
答案 1 :(得分:0)
使用此代码计算keyup事件中的字符数。
job
答案 2 :(得分:0)
考虑使用承诺。类似的东西:
function loadFile() {
return new Promise((resolve, reject) => {
try{
//Function about loading file
//...
resolve(obj);
} catch (e) {
reject(e);
}
});
};
然后你应该能够通过以下方式获得计数:
loadFile() //Will do count_up after the text is loaded
.then(function(obj){
count_up(obj);
})
.catch((reason) => {
console.log('Handle rejected promise ('+reason+') here.');
});