2010-09-28 67 views
0

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

如何使这项工作任何想法?

感谢, 乔希

+0

eval()is evil = P – anddoutoi 2010-09-28 13:42:10

+0

...在这种情况下完全没有必要。 – jwueller 2010-09-28 13:44:30

+0

..... true;)这只是更多的工作输入,程序员不懒惰,他们喜欢尽可能有效和高效地工作。 – Ben 2010-09-28 13:46:28

回答

1

难道是公开程度和显示器,或者你的位置是问题吗?阅读了几次后,我在代码中没有发现任何问题。当我想要切换元素时,我只使用display属性,这对我来说也适用,也适用于IE。

1

该问题似乎是由于设置了div.style.position,尽管我不确定它是什么。从concern1Text中删除position样式并删除相关的js赋值statemnts似乎可以解决此问题。

只要我们正在修复东西,您的方法的前两行不应该使用eval。他们可以写成

box = document.getElementById(checkBox);