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');
}
});
}