Отображение определенных элементов таблицы при нажатии на radio
Доброго времени суток.
Суть: необходимо создать интерактивную таблицу. В левой части таблицы блок с параметрами (input radio), в правой - таблица со скрытыми ячейками (style: "display:none") Необходимо: При выборе определенного radio показывать определённые ячейки таблицы, при этом важно, чтобы при смене radio показывались уже другие ячейки, а остальные скрывались. Пример кода:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Пример интерактивной процедуры</title>
<script language="JavaScript" type="text/javascript">
function show(id){document.getElementById(id).style.display="block";}
function instruction ()
{
if (f.param[0].checked)
{
show("step_1");
show("step_3");
show("step_5");
}
else if (f.param[1].checked)
{
show("step_2");
show("step_4");
show("step_6");
}
}
</script>
</head>
<body>
<form name="f">
<table width="100%">
<tr>
<td colspan="2">Заголовок процедуры </td>
</tr>
<tr>
<td width="40%">
<table id="params">
<tr>
<td id="param_1" onClick="instruction ();">
<input type="radio" name="param" />параметр 1
</td>
</tr>
<tr>
<td id="param_2" onClick="instruction ();">
<input type="radio" name="param" />параметр 2
</td>
</tr>
</table>
</td>
<td width="60%">
<table style="display: ">
<tr id="step_1" style="display: none">
<td>Шаг_1</td>
</tr>
<tr id="step_2" style="display: none">
<td>Шаг_2</td>
</tr>
<tr id="step_3" style="display: none">
<td>Шаг_3</td>
</tr>
<tr id="step_4" style="display: none">
<td>Шаг_4</td>
</tr>
<tr id="step_5" style="display: none">
<td>Шаг_5</td>
</tr>
<tr id="step_6" style="display: none">
<td>Шаг_6</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
Имеющийся скрипт работает только в одном направлении: показывает элементы. Если пробежаться по всем radio получится каша (будут видны все элементы). Понимаю, что нужно поменять логику функции show(id), но не хватает мозгов/знаний, как это сделать. Прошу помощи. Заранее благодарен. |
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Пример интерактивной процедуры</title>
<style>
.left, .right{
display:inline-block;
padding-right:100px;
}
#step_1, #step_2, #step_3, #step_4, #step_5, #step_6{
display:none;
}
</style>
<script language="JavaScript" type="text/javascript">
function show(id){document.getElementById('step_'+id).style.display="block";}
function hide(id){document.getElementById('step_'+id).style.display="none";}
function instruction (ind){
if (ind==1) {
document.getElementById('radio-1').checked = true;
document.getElementById('radio-2').checked = false;
for (var i=1;i<6;i=i+2){
show (i);
hide(i+1);
}
}
else{
document.getElementById('radio-1').checked = false;
document.getElementById('radio-2').checked = true;
for (var i=2;i<7;i=i+2){
show (i);
hide(i-1);
}
}
}
</script>
</head>
<body>
<span class="left">
<div>Заголовок процедуры</div>
<div>
<input type="radio" id="radio-1" onClick="instruction (1)" />Параметр 1
</div>
<div>
<input type="radio" id="radio-2" onClick="instruction (2)" />Параметр 2
</div>
</span>
<span class="right">
<div id="step_1">Шаг_1</div>
<div id="step_2">Шаг_2</div>
<div id="step_3">Шаг_3</div>
<div id="step_4">Шаг_4</div>
<div id="step_5">Шаг_5</div>
<div id="step_6">Шаг_6</div>
</span>
</body>
</html>
|
То, что нужно. Спасибо большое.
|
| Часовой пояс GMT +3, время: 20:57. |