У меня есть настройка формы, поэтому, когда вы устанавливаете флажок, соответствующий UL расширяется, показывая дополнительные параметры в зависимости от выбора. Это работает, но только когда пользователь щелкает метку флажка. Если флажок установлен, UL расширяется, как и ожидалось, но флажок не устанавливается.
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 расширялась, а затем мгновенно убиралась. Единственный способ, которым я мог остановить это, - это добавить «return false»; что, конечно же, приводит к тому, что флажок не устанавливается. Отсюда и checkbox.attr().
Взломанный код, я знаю. Но как я могу заставить флажок работать? >.‹