我有一个数据,我想在复选框中显示。数据有一个布尔条件'Y'/'N'。我的问题是复选框输入只接受true / false。有没有办法改变复选框的值而不是true / false我希望它接受'Y'/'N';
示例数据:
[{
"id": 1,
"value": "0.59"
}, {
"id": 2,
"value": "N"
}, {
"id": 3,
"value": "LOW"
}, {
"id": 4,
"value": "HIGH"
}, {
"id": 5,
"value": "Y"
}]
答案 0 :(得分:1)
您可以更有效地执行此操作,但这是描述问题解决方案的最明确方式,并且易于阅读/实施/扩展。我在底部包含了一个指向plnkr的链接,该链接将值写入文档,以便您可以看到这一点。我已经删除了代码中的document.write输出:
当您提取数据时:
const data = [{
"id": 1,
"value": "0.59"
}, {
"id": 2,
"value": "N"
}, {
"id": 3,
"value": "LOW"
}, {
"id": 4,
"value": "HIGH"
}, {
"id": 5,
"value": "Y"
}]
遍历数组中的对象,如果它们是Y或N值,则添加具有相应true / false值的booleanValue键,并使用您的复选框绑定到该键。
for (var i=0; i<data.length; i++) {
if (data[i].value == "Y") {
data[i].boolValue = true
} else if (data[i].value == "N") {
data[i].boolValue = false
}
}
当您保存数据时(为了可见性而移除了Y / N值,它们仍会存在于您的数据中):
const submitData = [{
"id": 1,
"value": "0.59"
}, {
"id": 2,
"boolValue": true
}, {
"id": 3,
"value": "LOW"
}, {
"id": 4,
"value": "HIGH"
}, {
"id": 5,
"boolValue": false
}]
遍历数组中的对象,如果它们是true或false值,则将value键设置为适当的Y / N值。
for (var i=0; i<submitData.length; i++) {
if (submitData[i].boolValue == true) {
submitData[i].value = "Y"
} else if (submitData[i].boolValue == false) {
submitData[i].value = "N"
}
}