问题描述
div
元素的点击事件以 e.preventDefault()
开头。这使得手动点击复选框 input
或其关联的 label
不再有效。
在更多 JavaScript 代码的帮助下,手动点击 label
会生成预期结果,因为该复选框现在以编程方式选中/取消选中。
然而,尽管已经实现了用于以编程方式检查/取消检查的类似 JavaScript 代码,但手动单击复选框 input
仍然不起作用。为什么?
document.querySelector('div').onclick = function (e)
{
e.preventDefault();
if (e.target.tagName.toUpperCase() == 'LABEL')
{
e.target.previousElementSibling.checked = !e.target.previousElementSibling.checked;
}
else if (e.target.tagName.toUpperCase() == 'INPUT')
{
e.target.checked = !e.target.checked;
}
}
<div>
<input id="check" type="checkbox">
<label for="check">Label Text</label>
</div>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)