Javascript text区域剩余字符无法正常工作
我有一个文本区域,里面有预先填充的值。现在,我还在文本区域下面安装了一个字符剩余行 我无法实现默认的计数值,如果您注意到加载时单词计数保持在剩余250个字符,还请注意,该值已经预先填充了一些文本,因此函数默认情况下应该对预先填充的文本进行计数 文本颜色在剩余100个字符时变为黄色,在剩余0个字符时变为红色。当我达到黄色并开始删除超过100个字符的文本时,颜色似乎不会变回默认值 有人能帮忙吗 document.addEventListener'keyup',functionevent{ 如果event.target.matches'textarea.minchar'{ 让元素=event.target; 设value=element.value; 设maxLength=element.maxLength; 让rechar=element.nextElementSibling; rechar.innerText=`${maxLength-Numbervalue.length}剩余字符数`; 如果maxLength-Numbervalue.length==0{ rechar.style.color=E01424;Javascript text区域剩余字符无法正常工作,javascript,html,css,dom-events,Javascript,Html,Css,Dom Events,我有一个文本区域,里面有预先填充的值。现在,我还在文本区域下面安装了一个字符剩余行 我无法实现默认的计数值,如果您注意到加载时单词计数保持在剩余250个字符,还请注意,该值已经预先填充了一些文本,因此函数默认情况下应该对预先填充的文本进行计数 文本颜色在剩余100个字符时变为黄色,在剩余0个字符时变为红色。当我达到黄色并开始删除超过100个字符的文本时,颜色似乎不会变回默认值 有人能帮忙吗 document.addEventListener'keyup',functionevent{ 如果ev
}else如果maxLength-Numbervalue.length在底部添加一条else语句,并将颜色设置回黑色,如下所示:
if (maxLength - Number(value.length) <= 0) {
rechar.style.color = "#E01424";
} else if (maxLength - Number(value.length) <= 100) {
rechar.style.color = "#CF7721";
} else { // You can add an if statement here to check if the color is #000 yet to prevent re-renders
rechar.style.color = "#000";
}
在底部添加else语句并将颜色设置回黑色,如下所示:
if (maxLength - Number(value.length) <= 0) {
rechar.style.color = "#E01424";
} else if (maxLength - Number(value.length) <= 100) {
rechar.style.color = "#CF7721";
} else { // You can add an if statement here to check if the color is #000 yet to prevent re-renders
rechar.style.color = "#000";
}
我分析了你的问题内容,发现不止一个问题,解决它们会让你对正在发生的事情有一个开放的视角。让我解释一下 首先定义将在代码中使用的内容。 这将帮助您更好地理解代码,首先定义有用的变量。因此,您不必反复调用它们。因此,我建议您在一开始就定义DOM元素引用,如下所示:
var textarea = document.querySelector(".minchar"),
output = document.querySelector(".rechar");
var maxLength = +textarea.getAttribute("maxlength");
现在我们在一个变量中有了textarea,在另一个变量中有了output div,还有我们应该使用的最大长度
处理函数中的剩余字符。
你可能会问,为什么会这样?好吧,你自己看看代码的变化有多干净、可读性和简单。因此,拥有一个简单的函数,它的唯一任务是更新剩余的字符输出,这将让你在任何时候都可以运行该函数,只要你想更新它。它可能是在按下一个键时,文本区域发生变化时,甚至是在网站发生变化时已加载:
职能:
在网站加载完成时将函数添加到事件侦听器:
window.onload = outputRemainingCharacters;
如此简单,它将从一开始就更新您的值
在if语句中添加默认条件。
这是因为,如果不添加默认值,您将永远无法返回到您提到的默认值:
textarea.addEventListener('keydown', function(event) {
outputRemainingCharacters();
let used = textarea.value.length;
if (maxLength - used == 0) {
output.style.color = "#E01424";
} else if (maxLength - used <= 100) {
output.style.color = "#CF7721";
} else {
output.style.color = "#000"; //Default color
}
});
节省时间并在任何燃油油位下归还车辆。价格包括最多一油箱汽油/柴油/费用。
250个剩余字符
我分析了你的问题内容,发现不止一个问题,解决它们会让你对正在发生的事情有一个开放的视角。让我解释一下 首先定义将在代码中使用的内容。 这将帮助您更好地理解代码,首先定义有用的变量。因此,您不必反复调用它们。因此,我建议您在一开始就定义DOM元素引用,如下所示:
var textarea = document.querySelector(".minchar"),
output = document.querySelector(".rechar");
var maxLength = +textarea.getAttribute("maxlength");
现在我们在一个变量中有了textarea,在另一个变量中有了output div,还有我们应该使用的最大长度
处理函数中的剩余字符。
你可能会问,为什么会这样?好吧,你自己看看代码的变化有多干净、可读性和简单。因此,拥有一个简单的函数,它的唯一任务是更新剩余的字符输出,这将让你在任何时候都可以运行该函数,只要你想更新它。它可能是在按下一个键时,文本区域发生变化时,甚至是在网站发生变化时已加载:
职能:
在网站加载完成时将函数添加到事件侦听器:
window.onload = outputRemainingCharacters;
如此简单,它将从一开始就更新您的值
在if语句中添加默认条件。
这是因为,如果不添加默认值,您将永远无法返回到您提到的默认值:
textarea.addEventListener('keydown', function(event) {
outputRemainingCharacters();
let used = textarea.value.length;
if (maxLength - used == 0) {
output.style.color = "#E01424";
} else if (maxLength - used <= 100) {
output.style.color = "#CF7721";
} else {
output.style.color = "#000"; //Default color
}
});
节省时间并在任何燃油油位下归还车辆。价格包括最多一油箱汽油/柴油/费用。
250个剩余字符
如果您想使用jQuery来实现,下面也应该这样做 HTML代码段: jQuery代码段:
jsiddle:如果您想使用jQuery来完成它,下面也应该这样做 HTML代码段: jQuery代码段:
jsIDLE:您需要另一个else块来将rechar.style.color设置为黑色000,因为您需要侦听字符删除事件1。因为您侦听了keyup 2。您没有将颜色更改回原来的颜色。@Cyval预览是可能的?您需要另一个else块来将rechar.style.color设置为黑色000,因为您需要侦听字符删除事件1。因为您收听了keyup 2。您没有更改颜色bac
k、 @Cyval a预览是可能的?@BillNathan编辑了答案您想在加载时运行此功能,这假设JQuery为什么您认为不推荐的解决方案是最好的?我不这么认为,这就是我链接到documents@BillNathan使用“答案”编辑您希望在加载时运行此选项,这假设JQuery为什么您认为不推荐的解决方案是最好的呢?我不这么认为,这就是我链接到文档的原因!如果我还想选择蓝色作为默认颜色而不是黑色呢?@BillNathan总是乐于助人。对于这个特定的问题,只需使用你的愿望的相应的或价值。可能有用。也就是说,最亮的蓝色是00F,这太可爱了!如果我还想选择蓝色作为默认颜色而不是黑色呢?@BillNathan总是乐于助人。对于这个特定的问题,只需使用你的愿望的相应的或价值。可能有用。也就是说,对于最亮的蓝色,00F是值。