2012-12-05 57 views
1

我有一种形式,在这种形式,我有很多复选框,并且复选框被分类为2类别,当我选择一个类别时,其所有子类别复选框会自动选中,并且我使用“提交”按钮作为筛选器,根据chekbox选中。为什么复选框会在我提交表单时自动取消选中?

对于防爆: - 我作为

       1]Alcoholic Drinks 
           2]--Beer 
           3]--Rum 
           4]--Whiskey 
           5]Non Alcoholic Drinks 
           6]--Coffee 
           7]--Tea 
           8]--Juice 

我使用jQuery来复选框自动被选择的检查盒。 假设用户在酒精上打勾,然后自动选中其子框。

我的代码: -

 $('#Alcoholic').click(function() 
      {          

        if($(this).attr("checked")) 
       { 

        $(this).parents('.min-form').find('label.Beer').removeClass('checked'); 
        $(this).parents('.min-form').find('label.Wine').removeClass('checked'); 
        $(this).parents('.min-form').find('label.Spirits').removeClass('checked'); 

       } 
        else 
       { 

        $(this).parents('.min-form').find('label.Beer').addClass('checked'); 
        $(this).parents('.min-form').find('label.Wine').addClass('checked');     
        $(this).parents('.min-form').find('label.Spirits').addClass('checked'); 
       }     
        return false; 
      });    

当我检查酒精及其子复选框都被选择automatically.My问题是,当我提出不具有任何操作的复选框选中获得唐automatically.I形式不知道这是怎么发生的?为什么复选框会在我提交没有任何表单标签的表单时自动取消选中?

回答

1

当您在表单中没有任何操作时,它只是重新加载页面 - 因此是空的复选框。 如果添加

return false; 

到您的编码被点击提交按钮时,它会不断的形式从提交(更不用说)等从刷新页面。

1

那么从你的代码看来,你是初学jQuery开发。 我建议采用以下流程。
添加类,你没商量类别chechboxes class="top"
和子类别复选框添加class="sub"

$(".top").click(function(){ 
    if($(this).is(':checked')) 
    { 
     $(this).find('.sub').attr('checked',true); 
    } 
    else 
    { 
     $(this).find('.sub').attr('checked',false); 
    } 
}); 


你需要确保对如果有子类复选框的勾选,那么父类也必须选中。
这样做,你需要处理的点击事件复选框具有class="sub" BR /> 希望这个作品! :)是的一定要有return false;

+0

+1好的答案。 –

相关问题