我有一個表單設置,所以當你選擇一個複選框時,相關的UL將展開顯示更多選項的基礎上的選擇。它的工作原理,但只有當用戶點擊複選框的標籤。如果點擊該複選框,UL會按預期展開,但該框不會被檢查。jQuery複選框沒有檢查
的Javascript:
jQuery(document).ready(function()
{
jQuery('.toggleUL').click(function()
{
var checkbox = jQuery(this).find('input');
var ul = jQuery(this).next('ul');
if (ul.css('display') == 'block') { ul.find('input').attr('checked', false); }
if (checkbox.attr('checked') == false)
{
checkbox.attr('checked', true);
}
else
{
checkbox.attr('checked', false);
}
ul.slideToggle('slow'); return false;
});
});
HTML:
<label class="toggleUL"><input style="margin-right: 10px" type="checkbox" name="quoteWebsite" id="quoteWebsite" value="xxx" />xxx</label>
<ul style="list-style-type: none; display: none">
<li style="margin-left: 20px"><label><input style="margin-right: 10px" type="checkbox" name="quoteWebsite1[]" id="quoteWebsite1" value="xxx" />xxx</label></li>
<li style="margin-left: 20px"><label><input style="margin-right: 10px" type="checkbox" name="quoteWebsite1[]" id="quoteWebsite2" value="xxx" />xxx</label></li>
<li style="margin-left: 20px"><label><input style="margin-right: 10px" type="checkbox" name="quoteWebsite1[]" id="quoteWebsite3" value="xxx" />xxx</label></li>
</ul>
的的slideToggle()函數不工作應該的方式。當盒子/標籤被點擊時,UL會立即展開然後收回。我可以停止的唯一方法是添加'返回false';這當然會導致複選框無法檢查。因此checkbox.attr()。
破解了代碼,我知道。但是我怎樣才能讓複選框起作用? >。 <
停止了複選框檢查。不是當點擊它本身或它的標籤。 – spirax 2009-11-06 07:44:34