我知道这个问题可能重复,但到目前为止我还无法找到解决方案。也许我搜索的方式是错误的。
我需要使用"空格键"计算textarea
的总字符数和空格数。 " tab键" "删除"或"退格"。
到目前为止,我有以下代码,但我不知道为什么它没有考虑计数中的标签空间。
<textarea id="myTextArae"></textarea>
$("#myTextArae").on("keydown", function(e) {
if (e.keyCode === 9) { // tab was pressed
let start = this.selectionStart;
let end = this.selectionEnd;
var $this = $(this);
$this.val($this.val().substring(0, start) + "\t" + $this.val().substring(end));
this.selectionStart = this.selectionEnd = start + 1;
var txt = $("#balanceCharacInTxtarea").val();
if (txt != parseInt("0")) {
e.preventDefault();
}
return false;
}
})
$("#myTextArea").on("paste", function (e) {
setTimeout(function () {
that.check(e, e1, 0);
}, 100);
});
check(eventcode, e1, code) {
if (code === 0) {
this.calculate = this.characterCount(e, e1, default);
} if (code === 1) {
this.calculate = e1 ? e1.length : 0;
}
}
var default = 175
答案 0 :(得分:3)
如果像
一样简单 $("#yourtextarea").keyup(function() {
var count = $("#yourtextarea").val().length;
});
这将计算空格,制表符,换行符和其他字符。
它也会在粘贴时触发。
示例强>:
$(document).ready(function(){
$("#test").html(0);
//this is for counting the characters
$("#message").keyup(function() {
var txtlgt = $("#message").val().length;
$("#test").html(txtlgt);
});
//This is for enabling tabs in the textarea
$("#message").on("keydown", function(e) {
if (e.keyCode === 9){
let start = this.selectionStart;
let end = this.selectionEnd;
var $this = $(this);
$this.val($this.val().substring(0, start) + "\t" + $this.val().substring(end));
this.selectionStart = this.selectionEnd = start + 1;
return false;
}
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>
<textarea id="message"></textarea>
&#13;