由于某种原因,我的文本无法在IE7中显示。我在一个表单中使用了复选框,当它们单击时,它会调用一个javascript函数来打开相应的文本区。它在其他所有主浏览器中都能正常工作,但在IE7中就不行。
下面是我使用的代码示例。
HTML:
<input name="areasOfConcern1" type="checkbox" id="concern1" value="Frequently misses classes" onClick="checkedTest('concern1', 'concern1Text')" onblur="checkedTest('concern1', 'concern1Text')" />
Attendance
<div id="concern1Text" style="visibility:hidden;position:absolute;display:none;">
<textarea onfocus="removeText(this)" onblur="addText(this)" cols="90" name="areasOfConcern1Text" id="areasOfConcern1Text">Comments...</textarea>
</div>JS函数:
function checkedTest(checkBox, divId)
{
box = eval("document.getElementById(checkBox)");
div = eval("document.getElementById(divId)");
if(box.checked == true)
{
div.style.visibility="visible";
div.style.display="block";
div.style.position="relative";
}
else
{
div.style.visibility="hidden";
div.style.display="none";
div.style.position="absolute";
}
}有没有关于如何让它工作的想法?
谢谢你,乔希
发布于 2010-09-28 21:45:09
可能是可见度和显示,或者你的位置是问题所在?读了几遍之后,我没有在代码中发现任何问题。当我想要切换元素时,我只使用display属性,这对我来说很好,在IE中也是如此。
发布于 2010-09-28 21:50:12
这个问题似乎是由于设置了div.style.position造成的,尽管我不确定是为什么。从concern1Text中删除position样式并删除相关的js赋值状态似乎可以解决这个问题。
只要我们在修复问题,你的方法的前两行就不应该使用eval。它们可以以以下形式编写
box = document.getElementById(checkBox); https://stackoverflow.com/questions/3813302
复制相似问题