【发布时间】:2023-03-20 02:54:02
【问题描述】:
对于这么简单的事情,我似乎无法弄清楚。我在 IE 11 中使用 jQuery 1.4.2(尽管我尝试了更高版本),当值应该为 true 时,我似乎无法检索检查的值。
<input id="<%=ID%>" class="abcdeCheckBox" type="checkbox" value="<%=ID%>" />
var cachedCheckedValues = new Array();
$('.abcdeCheckBox').bind('click', function()
{
alert(this.checked);
var indexCheck = cachedCheckedValues.indexOf(this.value);
if(this.checked)
{
if(indexCheck == -1)
{
cachedCheckedValues.push(this.value);
}
}
else
{
cachedCheckedValues.splice(indexCheck, 1);
alert("removing: " + this.value);
}
});
这永远不会返回 true,我不明白为什么。它永远不会将值添加到我在代码中拥有的数组中。
【问题讨论】:
-
需要将变量初始化为数组。你不能在
null上使用.push()。 -
必须尝试刷新浏览器或清除浏览器缓存?
-
可以确认,代码确实有效。无论您遇到什么错误都在其他地方。
-
是的,这是一个不寻常的问题。不确定是什么原因造成的。通过按 id 重新选择元素并在 click 事件中获取选中的值,我确实找到了一种解决方法。这段代码使用的是 jQuery 1.4.2,虽然它很旧,但我认为这没有区别。我在同一个浏览器中运行了 JSFiddle,一切正常。
标签: jquery internet-explorer checkbox