2010-09-28 1 views
0

По какой-то причине мои текстовые поля не отображаются в IE7. Я использую флажки в форме, и когда они нажимают, она называется функцией javascript, которая открывает соответствующую текстовую область. Он отлично работает в любом другом главном браузере, но не в 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() есть зло = P – anddoutoi

+0

... и совершенно ненужным в этом случае. – jwueller

+0

..... true;) это только больше работы для ввода, программисты не ленивы, им нравится работать как можно эффективнее и эффективнее. – Ben

ответ

1

Может быть, что visibilty и дисплей, или, может быть, ваше положение являются проблемой? Я не вижу никаких проблем в коде после чтения несколько раз. Когда я хочу переключать элементы, я использую только атрибут display, и это отлично работает для меня, также в IE.

1

проблема возникает из-за установки div.style.position, хотя я не уверен, почему это так. Удаление стиля position с concern1Text и удаление связанных js-присвоений statemnts, похоже, устраняет проблему.

и до тех пор, пока мы исправляем вещи, первые 2 строки вашего метода не должны использовать eval. они могут быть записаны в виде

box = document.getElementById(checkBox);