优化js -保存对象中复选框的值
Optimizing js -Saving values from checkboxes in object
我是相当新的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
- 将公共类添加到所有复选框
- 为所有复选框的值创建对象
- 使用公共类 在复选框上绑定事件处理程序
- 更新事件处理程序中选中复选框的状态
另外,最好在javascript中绑定事件,而不是在HTML中内联。
var myObj = {
checkbox1: false,
checkbox2: false,
checkbox3: false
};
$('.myCheckbox').on('change', function() {
var thisId = $(this).attr('id');
myObj[thisId] = this.checked;
console.log(myObj);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<fieldset>
<input type="checkbox" id="checkbox1" value="checkbox1" class="myCheckbox">
<input type="checkbox" id="checkbox2" value="checkbox2" class="myCheckbox">
<input type="checkbox" id="checkbox3" value="checkbox3" class="myCheckbox">
</fieldset>
您可以将相同的函数绑定到每个复选框,并使用复选框的id作为对象中的键:
function onCheckBoxChanged(e){
var sender = e.target;
boxValues[sender.id] = (sender.checked);
}
这样做可以节省大量的输入:)
相关文章:
- angularjs 选中复选框时隐藏具有特定类的对象
- 选择一个从 mysql 返回选中/未选中复选框的对象
- Javascript 从嵌套的 UL LI 复选框生成递归 JSON 对象
- 根据复选框输入过滤深层对象
- 如何将所有复选框放入一个对象数组并标记选中的复选框
- 从复选框创建具有复杂变量的对象
- 选中加载时对象数组中的复选框
- 选中复选框(如果 json 对象中存在)
- 如何在jquery中获取复选框选定的对象
- 道场复选框对象和 ArcGIS JS API
- 将复选框绑定到 AngularJs 中的对象值
- 如何使用 Javascript 或 jQuery 将输入类型复选框存储到 json 对象中
- 语法错误,无法识别的表达式:[对象 HTMLDivElement]输入:复选框[名称=]:选中
- 从复选框循环循环遍历 json 对象
- 将复选框链接到 Javascript 中的对象
- Jquery-如何获取选中复选框的Jquery对象
- 使用AngularJS复选框过滤对象属性
- javascript使用复选框迭代对象数组
- 选中复选框时更改父对象的背景
- 使用复选框将JSON结果解析为对象