Jquery 使用“查询文本字段字符长度计数”;对于->;keyup“;

Jquery 使用“查询文本字段字符长度计数”;对于->;keyup“;,jquery,arrays,for-loop,keyup,Jquery,Arrays,For Loop,Keyup,我制作了一个脚本来计算表单文本字段中的字符数,但现在正在工作。我在keyup函数中放置了一个警报,以查看它是否正确计数,但每次I都是6(表单元素的总数)。在键控功能之外计数正确。有什么问题吗?我看代码没有任何问题。控制台日志也是空的(没有错误) //计数字符 formElementsTitles=[“内容标题”、“内容描述”、“文本内容”、“图像url”、“视频嵌入”、“传统信息”]; FormElementsLength=['100','5000','20000','1000','1000',

我制作了一个脚本来计算表单文本字段中的字符数,但现在正在工作。我在
keyup函数
中放置了一个警报,以查看它是否正确计数,但每次
I
都是6(表单元素的总数)。在
键控功能之外
计数正确。有什么问题吗?我看代码没有任何问题。控制台日志也是空的(没有错误)

//计数字符
formElementsTitles=[“内容标题”、“内容描述”、“文本内容”、“图像url”、“视频嵌入”、“传统信息”];
FormElementsLength=['100','5000','20000','1000','1000','1000'];
对于(i=0;i=charactersMax)
{
$(“#计数”+formElementsTitles[i]).html(“+”字符保留+”字符保留”);
}
其他的
{
$(“#计数”+formElementsTitles[i]).html(“+”字符保留+”字符保留”);
}
});
}

您试图在事件函数中使用
i
变量,但该变量无效,因为该函数仅在事件真正发生时执行

这应该对您有用:

var formElements = {
    content_title: {
        maxLength: 100
    }
}

for(title in formElements)
{   
    $('#'+title).keyup(function() {

        var charactersMax         = formElements[$(this).attr('id')].maxLength;
        var charactersCurrent     = $(this).val().length;
        var charactersRemaining   = charactersMax - charactersCurrent;

        if(charactersCurrent >= charactersMax)
        {
            $("#count_"+$(this).attr('id')).html('<span class="content_count_chars_yellow">'+charactersRemaining+'</span> characters remaining');
        }
        else
        {
           $("#count_"+$(this).attr('id')).html('<span class="content_count_chars_green">'+charactersRemaining+'</span> characters remaining');
        }
    });
}
var formElements={
内容和标题:{
最大长度:100
}
}
for(formElements中的标题)
{   
$('#'+title).keyup(函数(){
var charactersMax=formElements[$(this).attr('id')].maxLength;
var charactersCurrent=$(this).val().length;
变量CharactersMaining=charactersMax-charactersCurrent;
如果(charactersCurrent>=charactersMax)
{
$(“#count#”+$(this.attr('id')).html(“+charactersRemaining+”剩余字符”);
}
其他的
{
$(“#count#”+$(this.attr('id')).html(“+charactersRemaining+”剩余字符”);
}
});
}

请看这里的fiddle:

我不认为这应该如何解决问题。你是对的,这只解决了部分问题。我要编辑我的答案。
var formElements = {
    content_title: {
        maxLength: 100
    }
}

for(title in formElements)
{   
    $('#'+title).keyup(function() {

        var charactersMax         = formElements[$(this).attr('id')].maxLength;
        var charactersCurrent     = $(this).val().length;
        var charactersRemaining   = charactersMax - charactersCurrent;

        if(charactersCurrent >= charactersMax)
        {
            $("#count_"+$(this).attr('id')).html('<span class="content_count_chars_yellow">'+charactersRemaining+'</span> characters remaining');
        }
        else
        {
           $("#count_"+$(this).attr('id')).html('<span class="content_count_chars_green">'+charactersRemaining+'</span> characters remaining');
        }
    });
}