【问题标题】:how to prevent spaces from being counted at the start of a keyup in the text area with jquery?如何使用jquery防止在文本区域中的keyup开始时计算空格?
【发布时间】:2021-03-26 11:23:21
【问题描述】:
像twitter一样,当textarea为空且只输入空格时,不计算空格,但输入第一个字母后,才计算空格。
在这个脚本中,即使只输入了空格,计数也会运行。
那么如何防止在键位开始时计算空格?
function updateCountdown() {
// 140 is the max message length
var remaining = 140 - $('.message').val().length;
$('.countdown').text(remaining + ' characters remaining.');
}
$(document).ready(function($) {
updateCountdown();
$('.message').change(updateCountdown);
$('.message').keyup(updateCountdown);
});
【问题讨论】:
标签:
jquery
string-length
keyup
【解决方案1】:
您可以使用密钥代码。
首先你必须改变你的 keyup 事件触发器。
$('.message').keyup((e) => updateCountdown(e));
然后在函数中添加这样的语句:
function updateCountdown(e) {
if(e.keyCode == 32){
//user pressed space key.
}
// 140 is the max message length
var remaining = 140 - $('.message').val().length;
$('.countdown').text(remaining + ' characters remaining.');
}
您也可以使用trim 来避免第一个和最后一个空格字符。
【解决方案2】:
您需要修剪字符串。所以而不是:
$(".message").val().length
您会想要以下内容:
$(".message").val().trim().length
修剪去除字符串前后的所有空格,因此主要内容就是返回的内容。