Я довольно новичок в js, и я бы хотел оптимизировать свой код. У меня есть группа флажков, и их булевские значения сохраняются в объекте для дальнейших вычислений.Оптимизация js -Сохранение значений из флажков в объекте
HTML:
<fieldset>
<input type="checkbox" id="checkbox1" onchange="checkbox1Changed()" value="checkbox1">
<input type="checkbox" id="checkbox2" onchange="checkbox2Changed()" value="checkbox2">
<input type="checkbox" id="checkbox3" onchange="checkbox3Changed()" value="checkbox3">
</fieldset>
JS:
//store values for further computation
var boxValues = {
box1: false,
box2: false,
box3: false,
}
//get checkboxvalues from view
var checkbox1 = document.getElementById("checkbox1");
var checkbox2 = document.getElementById("checkbox2");
var checkbox3 = document.getElementById("checkbox3");
//update values in boxValues
function checkbox1Changed() {
if (checkbox1.checked) {
boxValues.box1 = true;
} else {
boxValues.box1 = false;
}
}
function checkbox2Changed() {
if (checkbox2.checked) {
boxValues.box2 = true;
} else {
boxValues.box2 = false;
}
}
function checkbox3Changed() {
if (checkbox3.checked) {
boxValues.box3 = true;
} else {
boxValues.box3 = false;
}
}
Поскольку я планирую иметь приблизительно 20 флажков зрения было бы много повторения кода. Кто-нибудь знает более умный способ сделать это?
Заранее благодарен!
Vin
ли вы на самом деле с помощью JQuery или же добавить этот тег в результате несчастного случая/привычки? Если вы не используете его, вам не нужно добавлять его только для этого кода, но вам может понадобиться удалить тег, чтобы вы не получали ответы, предполагающие, что вы уже используете jQuery. –
Если jquery служит цели, я не против использовать ее :) –