1

我有一个带有预先保存值的复选框列表。

我想显示这个列表来检查选中的,取消选中未选中的。

我使用 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 包含保存的值。

已选中的框正确显示,但未选中的框以磨损的方式显示: 复选框视图

但是应该检查的日子之一也是输出错误的日子,它旁边有一个正确的标记。

那么,有没有一种方法可以修复此代码?

4

1 回答 1

1

问题在于 id 处的“i”计数器。

在未经检查的日子里,它没有正确增加,所以我只是改变了这个:

                $("#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 后,一切都已修复:) `

于 2012-11-19T09:50:31.347 回答