Javascript为下拉菜单设置布尔值
Javascript set boolean value for dropdown
我有下面的代码映射"活跃"为真和InActive为false
var statusJSON = {
'- Select -' : '',
'Active' : true,
'Inactive': false
};
$.each(statusJSON, function(key, val){
$statusFlag.append('<option value=' + val + '>' + key + '</option>');
});
我还做了以下更改下拉菜单;
$("#statusFlag").change(function() {
self.model.set({
statusFlag: $('#statusFlag').val()
});
});
现在的问题是当我提交表单时,statusFlag
中的值作为字符串("true"或"false")提交。如何确保仅为statusFlag
设置布尔值?
我不确定这是否有效,但请尝试一下
$("#statusFlag").change(function() {
self.model.set({
statusFlag: $('#statusFlag').val().toLowerCase() == "true" ? true : false
});
});
由于元素的实际"值"是一个字符串,.val()
返回一个字符串,要获得一个布尔值,您需要检查该字符串并返回您自己的布尔值。像这样:
statusFlag: $('#statusFlag').val() == 'true'
如果字符串匹配,则将statusFlag
设置为true
,否则设置为false
。
如何确保仅为statusFlag设置布尔值?
在这种情况下定义"ensure"。上面的示例总是将statusFlag
设置为布尔值,因为==
比较总是产生布尔值。但是,其他地方的代码可以将statusFlag
设置为任何值。JavaScript是动态类型的,所以没有办法从属性本身保证只会被设置为特定的类型。
你也许可以将属性包装在闭包中(使其"私有"),并公开一个自定义setter函数,该函数将在内部检查传递给它的任何值,并且只将该值设置为布尔值。但这似乎有点小题大做,特别是因为在这一点上,它是什么类型并不重要,因为它是私有封装的。
相关文章:
- 如何将localStorage值设置为false
- 如何从javascript/jquery中的复选框中获取布尔值
- KendoUI网格行过滤器,带有布尔值下拉列表
- php布尔值's小写AND大写和数字布尔值'可以接受
- 将输入值设置为ng模型属性[Angular]时出现问题
- ReactJS中动态生成的输入文本字段值设置问题
- JavaScript数组值设置错误
- YUI 3:将值设置为多选
- select中布尔值的Angularjs ng值不起作用
- 由于布尔值的变化,Django视图中的字符串格式不正确
- 如何从 asp.net 隐藏字段中设置和获取布尔值
- 当函数在 Javascript 中将其设置为 true 时,布尔值返回 false
- 无法将默认布尔参数设置为默认值
- 如何在骨干模型属性中设置布尔值true/false
- Knockout.js 2.0.0 -在这个例子中布尔值是如何设置的?
- 将函数的默认参数设置为布尔值的正确方法
- 如何在JavaScript中设置默认布尔值
- Javascript为下拉菜单设置布尔值
- 如何仅在布尔值为false时发出警报(与/或在构造2中设置javascript变量)
- Javascript-使用布尔值设置超时