У вас есть несколько вариантов.Вы можете сделать:
function activateCheckbox(id) {
if (document.myForm[id].checked == false) {
document.myForm[id].checked = true;
}
}
... или лично, я думаю, это немного яснее:
function activateCheckbox(id) {
var checkbox = document.getElementById(id);
if (! checkbox.checked) {
checkbox.checked = true;
}
}
Первый подход работает, потому что в JavaScript obj.someProperty
означает то же самоесемантически как obj["someProperty"]
.Поэтому, если у вас есть переменная, в которой хранится имя свойства, к которому вы хотите получить доступ, вы всегда можете сделать obj[name]
для доступа к свойству.
Второй подход - просто найти флажок в DOM по его id
.Это кажется мне чище, так как вы все равно устанавливаете id
каждого флажка и поскольку вы называете свою переменную "id".
Также обратите внимание, что ваш оператор if
является излишним.Атрибут checked
всегда будет true
или false
(вы можете испортить это, сохранив там другие вещи, но это совершенно отдельная тема).Поэтому установка его на true
, когда он равен false
, логически эквивалентна всегда установке на true, и вы можете реализовать свою функцию-обработчик в одну строку, например:
function activateCheckbox(id) {
document.getElementById(id).checked = true;
}