javascript - 仅在一个文本区域中计算字符

标签 javascript jquery html input

我的页面中有很多输入和一个文本区域。我想计算所有字符 这些输入/文本区域。

HTML:

<textarea name="texto_envio" class="form-control txtArea" maxlength="160"></textarea>
<input type="text"maxlength=3" class="form-control txtArea" />
<input type="text"maxlength=3" class="form-control txtArea" />
<span class="caracteres">160</span> restantes<br>

JS:

$(document).on("input keyup", ".txtArea", function () {
    var limite = 160;
    var caracteresDigitados = $(this).val().length;
    var caracteresRestantes = limite - caracteresDigitados;
    $(".caracteres").text(caracteresRestantes);
});

比如...如果我在文本区域中写“abc”并且在两个输入中都写“abc”,它将显示“151 restantes”。

我在上面尝试了这段代码,但它只计算了我正在写入的元素。我在文本区域中写了“abc”,然后 span 显示“157 restantes”。在 textarea 中写有“abc”,我也在其中一个输入中写了“abc”。但跨度向我显示“157 restantes”。

当我在另一个元素中写入时,Span 正在重置。

我该怎么做才能让它计算每个元素(文本区域和输入)?

最佳答案

您可以使用.each 函数枚举.txtArea 中的所有字符:

$('.txtArea').on("keyup", function() {
  var limite = 160;
  $('.txtArea').each(function() {
    limite -= $(this).val().length
    $(".caracteres").text(limite);
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea name="texto_envio" class="form-control txtArea" maxlength="160"></textarea>
<input type="text" maxlength=3 " class="form-control txtArea " />
<input type="text "maxlength=3" class="form-control txtArea" />
<span class="caracteres">160</span> restantes<br>

关于javascript - 仅在一个文本区域中计算字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47277400/

相关文章:

javascript - 鼠标离开后 CSS 过渡到原始状态

javascript - 隐藏 'Dropdown' 选择

jquery - 当您单击它时,IE 不会在不确定的复选框上触发 'Change' 事件

javascript - Tinymce - iframe 无法正常工作,它直接显示 url

html - 是否可以在纯 CSS 中自动隐藏第 (a ~ MAX) 个子元素的所有范围?

javascript - 在 HTML 5 SQL 查询中按列号检索列

Javascript 用 8 和 9 替换字符串不起作用......但其他数字可以......?

javascript - 内容脚本中的 Chrome 扩展选项

javascript - windows.resize() 不起作用

html - 无法向表angularjs添加新行