Консультация № 168374
27.05.2009, 11:18
0.00 руб.
0 1 1
Здравствуйте товарищи эксперты. У меня возникла следующая ситуация: мне необходимо при клике на чекбокс скрыть/показать определенные ячейки таблицы. Начал писать скрипт. Скрывать то он скрыват, но потом не показывает уже(..Заметил такой момент, если про проверке имени чекбокса брать его значение не из переменной name, а указывать сразу в условии, то ячейка восстанавливается нормально. В javascript я не очень, поэтому жду вашего ответа)). Заранее спасибо.

Код:
<html>
<head>
<script type="text/javascript">
function hide(name,id)
{
if(document.form.name.checked)
{
document.getElementById(id).style.display='block';
document.getElementById(id+'_v').style.display='block';
}
else
{
document.getElementById(id).style.display='none';
document.getElementById(id+'_v').style.display='none';
}
}
</script>
</head>
<body>
<form name="form">
<input type="checkbox" name="f" checked onClick="hide('f','f')">Фамилия
<input type="checkbox" name="i" checked onClick="hide('i','i')">Имя
<input type="checkbox" name="o" checked onClick="hide('o','o')">Отчество
</form>
<table border="1">
<tr>
<td id="f">Фамилия</td>
<td id="i">Имя</td>
<td id="o">Отчество</td>
</tr>
<tr>
<td id="f_v">Фамилия</td>
<td id="i_v">Имя</td>
<td id="o_v">Отчество</td>
</tr>
</table>
</body>
</html>

Обсуждение

Неизвестный
27.05.2009, 11:34
общий
это ответ
Здравствуйте, psevdo.
поправил ваш код.
В document.form.name.checked
не передавалось name и оно всегда переходило в else{
Но если делать как у вас display='block' то неправильно показывает Firefox, если поставить display='inline' то более менее нормально показывает... Для Firefox есть вообще отдельная штука display='table-cell' которая не работает в IE. Можно в зависимости от браузера присваивать display разные значеня

Приложение:
<html>
<head>
<script type="text/javascript">
function hide(name,id)
{
if(document.getElementById(id+'_c').checked)
{
document.getElementById(id).style.display='inline';
document.getElementById(id+'_v').style.display='inline';
}
else
{
document.getElementById(id).style.display='none';
document.getElementById(id+'_v').style.display='none';
}
}
</script>
</head>
<body>
<form name="form">
<input type="checkbox" id="f_c" checked onClick="hide('f','f')">Фамилия
<input type="checkbox" id="i_c" checked onClick="hide('i','i')">Имя
<input type="checkbox" id="o_c" checked onClick="hide('o','o')">Отчество
</form>
<table border="1">
<tr>
<td id="f">Фамилия</td>
<td id="i">Имя</td>
<td id="o">Отчество</td>
</tr>
<tr>
<td id="f_v">Фамилия</td>
<td id="i_v">Имя</td>
<td id="o_v">Отчество</td>
</tr>
</table>
</body>
</html>
Форма ответа