gpt4 book ai didi

javascript - 多种动态输入字符限制

转载 作者:行者123 更新时间:2023-11-28 04:17:39 26 4
gpt4 key购买 nike

我有一个表单,用户可以在其中动态添加输入。输入字符长度的总和不应高于 500,我无法以正确的方式摆脱它。

当前的 JavaScript 代码如下所示:

 $('.group[data-maxchar] .add-item-input').on('keyup paste', function () {
var group = $(this).closest('.group[data-maxchar]');
var maxChar = parseInt($(this).closest('.group[data-maxchar]').attr('data-maxchar'));
var remainingChar = parseInt(group.find('.counter').text());
var str = $(this).val();
var length = str.length;

if (remainingChar < 1) {
$(this).val(str.substr(0, maxChar));
}

updateCounters(group);
});

在添加第一个输入时,我可以正确插入 500 个字符,然后如果我尝试粘贴或键入更多文本,它会停止并且我不会超过它。

不幸的是,如果我添加更多输入,我会看到计数器变为负数,并且我能够写入文本...

我很确定错误出在控件的这一部分:

if (remainingChar < 1) {
$(this).val(str.substr(0, maxChar)); //here
}

如何解决?

最佳答案

主要问题是 on 事件。检查jquery api

正确的用法是$('.group[data-maxchar]').on('keypress Paste', '.add-item-input', function () {。然后函数继续为组中的每个元素触发。

还可以使用 keypress 而不是 keyup,因为您只想处理可打印的字符。

See demo

关于javascript - 多种动态输入字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45691373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com