Этот код делает то, что вы хотите:
<html>
<body>
<script type="text/javascript">
function onChange() {
var selectBox = document.formName3.selectName3;
var val = selectBox.value;
i = 0;
while(document.formName3["c_" + (i++)])
document.formName3["c_" + (i++)].checked = false;
document.formName3["c_" + val].checked = true;
}
</script>
<form name="formName3" id="formName3" onSubmit="return false;">
<p>
<select name="selectName3" onChange="onChange()">
<option value="0" selected="selected">Entry 0</option>
<option value="1">Entry 1</option>
</select>
</p>
<p>
<input name="c_0" type="checkbox" id="c_0" />
<label for="c_0">0 Is selected</label>
</p>
<p>
<input name="c_1" type="checkbox" id="c_1" />
<label for="c_1">1 Is selected</label>
</p>
</form>
</body>
</html>
Некоторые указатели, которые помогут вам выучить:
Текущее значение поля выбора получается с помощью selectBox.value
. Это значение равно содержанию value
текущей выбранной опции.
Функция сначала снимает все флажки, используя несколько функций javascript. Обратите внимание на цикл while
. Что это делает:
A. Если существует элемент с именем document.formName3["c_" + (i++)]
, который прямо эквивалентен document.formName3.c_0
, установите его значение в false.
B. Увеличивает i
на один.
C. Повторяется до тех пор, пока i
не станет равным 2, после чего он не сможет найти такой флажок и остановится.
После того, как все флажки сняты, установлен соответствующий флажок.
Еще одно последнее замечание: в javascript вы можете получить доступ к свойствам объектов, используя синтаксис скобок. Это означает, что object1.property1
прямо эквивалентно object1["property1"]
.
Ура, и я надеюсь, что это поможет.