2013-10-21 74 views
-1

嗨我有一個表有許多不同類型的輸入,其中一些是複選框。jQuery隱藏複選框,如果沒有選中文檔開始

我限制用戶檢查3個複選框,但允許他們編輯其他複選框。但是,在頁面加載時,我希望頁面只顯示已被選中的複選框並隱藏其他複選框。所以基本上我需要隱藏名爲「contact_numbers」的表格行,如果它沒有被檢查。

我想這是在頁面加載完成,而不是點擊,但我有一些這方面的困難。如果有人能把我指向正確的方向,那就太棒了!

我的代碼是低於或查看jsfiddle

$(document).ready(function() { 
    if ($('.contact_no').attr('checked')) { 
     $(this).closest('.contact_numbers').show() 
    } else { 
     $(this).closest('.contact_numbers').hide() 
    } 
    $("input[class='contact_no']").change(function() { 
     var maxAllowed = 3; 
     var cnt = $("input[class='contact_no']:checked").length; 
     if (cnt > maxAllowed) { 
      $(this).prop("checked", ""); 
      alert('Select ' + maxAllowed + ' telephone numbers, uncheck one box to check another!'); 
     } 
    }); 
    $("#add").click(function() { 
     $(".contact_numbers:hidden:first").fadeIn("slow"); 
    }); 
    $(".contact_numbers").on('click', '.remove', function() { 
     $(this).closest('.contact_numbers').hide() 
    }); 
}); 
+1

請您的演示減少重現您的問題所需要的最少的代碼。我們不需要看到*所有*(如果我們必須弄清楚什麼是相關的,它會積極地阻礙我們);幫助我們幫助你,只發布最小的相關的[SSCCE](http://sscce.org/)必要的代碼。 –

回答

1

試試這個:

$('.contact_no').each(function() { 
     $this = $(this); 
     if ($this.is(':checked')) { 
      $this.parents('tr.contact_numbers').show() 
     } else { 
      $this.parents('tr.contact_numbers').hide() 
     } 
    }); 

檢查this fiddle

+0

@Karthir謝謝我認爲這是我正在尋找的答案! – 001221

+0

實現這個目標有很多,但這與您嘗試的最接近。很高興它是幫助:) – karthikr