【问题标题】:HTML option value post over Boolean instead of StringHTML选项值发布在布尔而不是字符串上
【发布时间】:2021-12-11 03:33:49
【问题描述】:

我有一个简单的 HTML 选择下拉菜单,用户可以在其中更改以下值

<select id="changeIsActive">
    <option value = true>Active</option>
    <option value = false>Inactive</option>
    <option>All</option>
</select>

然后我有一个绑定到 ^ 的事件,它将字符串值“转换”为实际的布尔值。然后布尔值被传递给 Mongo 查询对象,供服务器过滤。

'change #changeIsActive'(e, template) {           
          let retVal;
          switch (e.target.value) {
            case "true":
                retVal = true;
                break;
            case "false":
                retVal = false;
                break;
            case "All":
                retVal = null;
            default:
                break;
        }
    }

有没有更好的方法将“true”和“false”的字符串文字转换为它们的布尔值?谢谢

【问题讨论】:

  • 转换结果为truefalsenullundefined。这是“布尔”值的奇怪组合......
  • 没错,只有前两个选项用于布尔值。需要 null 或 undefined ,因为这是用于 Mongo 查询构造函数。 IE。如果没有查询,则应返回所有文档

标签: javascript html node.js mongodb


【解决方案1】:
'change #changeIsActive'(e, template) {           
const obj = {
    'true':true,
    'false':false,
    'All':null
}

const retVal  = obj[e.target.value] 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2016-12-10
    • 1970-01-01
    • 2019-08-17
    • 2021-05-11
    • 2018-09-15
    相关资源
    最近更新 更多