gpt4 book ai didi

javascript - 除非您单击标签中的图像,否则 IE onClick 不会选中复选框?

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:47 27 4
gpt4 key购买 nike

好的,我有一个标签,这个标签里面是一个div,里面有一张图片,还有一些文字。 div 有一个对 javascript 函数的 onClick 调用,它改变了标签内 div 的颜色,并且还检查了复选框(出于某种原因,IE 和 firefox 不想正确检查它,chrome 工作正常)。Javascript:

<script language="javascript" type="text/javascript">
function changecolor(id, chck1, firstcolor, secondcolor)
{

divid = document.getElementById(id);
chkboxid = document.getElementById(chck1);
if(chkboxid.checked){
divid.style.background= firstcolor;
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari/') == -1){
chkboxid.checked = false ;
}
}
else{
divid.style.background= secondcolor;
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari/') == -1){
chkboxid.checked = true ;
}
}
}

html:

<input type="checkbox" id="idbox" name="cboxwithlabel" value="Another check box"><label for="idbox"><div class="listing" onClick="changecolor('Test33', 'idbox', '#09C', '#0F0');" id="Test33">Another checkbox<img src="images/checkmark.png" height="80" width="80" /></div></label>

好的,所以在 Firefox 和 Chrome 中使用它可以正常工作,但是 IE 7(尚未测试其他版本),它只会在您单击 div 内的图像时选中该复选框。单击 div 本身,只会更改背景颜色。那么有什么办法可以让 IE 正常工作,以便在您单击 div 时它也选中复选框?

最佳答案

浏览器做的一件好事是触发来自 <label> 的点击事件元素 for us .

所以我的建议是将点击处理程序附加到复选框本身。这样你的功能就变得简单多了。

此外,将 block 级元素放在行级元素内是非法的,所以我更改了您的 <div><span>并使用 CSS 使其呈现为 block 级元素。

<html>
<head>

<script language="javascript" type="text/javascript">
function changecolor( cbox, divId, firstcolor, secondcolor )
{
document.getElementById( divId ).style.background = cbox.checked ? firstcolor : secondcolor;
}
</script>

<style type="text/css">
span.listing {
display: block;
}
</style>

</head>
<body>

<input type="checkbox" id="idbox" name="cboxwithlabel" value="Another check box" onClick="changecolor(this, 'Test33', '#09C', '#0F0');">
<label for="idbox">
<span class="listing" id="Test33">
Another checkbox<img src="images/checkmark.png" height="80" width="80" onclick="this.parentNode.click()" />
</span>
</label>

</body>
</html>

关于javascript - 除非您单击标签中的图像,否则 IE onClick 不会选中复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1342658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com