提问人:spunka 提问时间:2/6/2023 最后编辑:spunka 更新时间:2/6/2023 访问量:59
JS click() 事件 - 奇怪的 beheavyor Chrome/IE8 如果我点击框与标签
JS click() event - Odd beheavior Chrome/IE8 if i click on the box vs the label
问:
我正在使用旧的网站系统,我在调试这个 beheavior 时遇到了问题,我不知道为什么会发生这种情况(这是遗留代码,所以我无法进行任何更改,只是一些补丁)
编辑:这个系统可以在IE8上运行,但现在他们正在改变浏览器,它需要在现代浏览器上运行,或者至少在chromium上运行
我有一个复选框,在页面加载时被选中。如果我点击它,它将触发 onclick() 事件,并且它内部再次有一个 click()[2] 事件。
铬:
如果我单击复选框(框),它不会让您取消选中它,因为 click()[2] 事件会触发并再次检查它
但是如果我单击 de 标签“TEST Check”,它可以让您将其更改为未选中,因为 click()[2] 事件未触发,它会跳过它 为什么只适用于标签?
IE浏览器 8:
在IE上,始终跳过click()[2],这样它的工作方式就像我按下了标签con Chrome一样
是的,这段代码很糟糕,但我只是想知道为什么标签跳过 click() 事件
在这里试试看: https://codepen.io/spuncko/pen/LYBavzx
<!DOCTYPE html>
<html>
<body>
<label>
<input type="checkbox" name="CHK_NH_30" id="CHK_NH_30" onClick="changeHidden(this.checked, document.getElementById('HD_CHECK')); pressClick();" /> TEST Check
<input type="hidden" name="HD_CHECK" id="HD_CHECK" value="N"/>
</label>
</body>
<script>
pressClick();
function changeHidden(checked, hdobj){
if (checked){
hdobj.value = "Y";
}else{
hdobj.value = "N";
}
}
function pressClick(){
console.log("pressClick function");
if (document.getElementById("HD_CHECK").value == "N") {
document.getElementById("CHK_NH_30").disabled = false;
document.getElementById("CHK_NH_30").click(); //click[2]
}
}
</script>
</html>
我希望标签也会触发 click() 事件并且不会跳过它 所以盒子和标签的工作方式是一样的(即使不是IE8,但至少是一致的)
答: 暂无答案
评论