Textarea不在IE7中呈现

时间:2010-09-28 13:39:51

标签: javascript forms internet-explorer-7 rendering textarea

由于某些原因,我的textareas没有在IE7中显示。我在表单中使用复选框,当他们点击时,它调用了一个javascript函数,打开了相应的textarea。它在所有其他主浏览器中都可以正常工作,但在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";
 }
}

关于如何使这项工作的任何想法?

谢谢, 约什

2 个答案:

答案 0 :(得分:1)

可能是那种可见性和显示,或者你的位置可能是问题吗?阅读几次后,我在代码中没有发现任何问题。当我想切换元素时,我只使用display属性,这对我来说也很好,也适用于IE。

答案 1 :(得分:1)

问题似乎是由于设置div.style.position,虽然我不确定为什么会这样。从position删除concern1Text样式并删除相关的js分配状态似乎可以解决问题。

只要我们正在修复问题,您方法的前两行就不应该使用eval。它们可以以

的形式编写
box = document.getElementById(checkBox);