我有一个带有预先保存的值的复选框列表。
我想显示此列表以检查选中的,取消选中未选中的。
我用的是JqueryMobile。
function CheckExistingDays(DayId, DaysList, DayName)
{
var Len = DaysList.length;
var FoundLessCounter = 0;
for(var i =0;i<Len;i++)
{
//alert("Day Id is : "+ DayId+" Day At List is "+ DaysList[i]);
if(DayId== DaysList[i])
{
$("#WeekDays fieldset").append('<input type="checkbox" name="'+ DayName+'" CheckboxId="'+ DayId +'" id="cool'+ i +'" class="custom" checked /><label for="cool'+ i +'">'+ DayName +'</label>');
}
else
{
FoundLessCounter++;
if(FoundLessCounter == Len)
{
$("#WeekDays fieldset").append('<input type="checkbox" name="'+ DayName+'" CheckboxId="'+ DayId +'" id="cool'+ i +'" class="custom"/><label for="cool'+ i +'">'+ DayName +'</label>');
}
}
}
}
其中DaysList包含已保存的值。
选中的框正确显示,但未选中的框以破旧的方式显示:
但是,应该检查的日子之一也输出错误的日子,它旁边只有正确的标记。
那么,有没有一种方法可以修复此代码?
最佳答案
问题出在id处的“ i”计数器。
在Unchecked Days,它没有正确地增加,所以我只是改变了这一点:
$("#WeekDays fieldset").append('<input type="checkbox" id="cool'+ i +'" class="custom" checked /><label for="cool'+ i +'">'+ DayName +'</label>');
至
$("#WeekDays fieldset").append('<input type="checkbox" id="cool'+ DayId+'" class="custom" checked /><label for="cool'+ DayId +'">'+ DayName +'</label>');
当ID更正后,一切都已修复:)
`
关于javascript - 显示具有不同值的复选框列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13440480/