Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript text区域剩余字符无法正常工作_Javascript_Html_Css_Dom Events - Fatal编程技术网

Javascript text区域剩余字符无法正常工作

Javascript text区域剩余字符无法正常工作,javascript,html,css,dom-events,Javascript,Html,Css,Dom Events,我有一个文本区域,里面有预先填充的值。现在,我还在文本区域下面安装了一个字符剩余行 我无法实现默认的计数值,如果您注意到加载时单词计数保持在剩余250个字符,还请注意,该值已经预先填充了一些文本,因此函数默认情况下应该对预先填充的文本进行计数 文本颜色在剩余100个字符时变为黄色,在剩余0个字符时变为红色。当我达到黄色并开始删除超过100个字符的文本时,颜色似乎不会变回默认值 有人能帮忙吗 document.addEventListener'keyup',functionevent{ 如果ev

我有一个文本区域,里面有预先填充的值。现在,我还在文本区域下面安装了一个字符剩余行

我无法实现默认的计数值,如果您注意到加载时单词计数保持在剩余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;
}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是值。