我遇到了一个问题,经过几个小时的寻找答案并尝试解决问题后,我无法让它工作。
我的问题。我有一个 MYSQL 数据库。当我通过 PHP 从数据库中提取“boolean ”数据时,一切正常。 PHP 将 1 和 0 的“字符串”解释为 True 和 False。但是,当我检索此数据以使用 Ajax 填充表单时,我遇到了问题。
字符串输出为:{"id":"478","name":"aaaa","manager":"385","usertype":"0","typeone":"0", “typetwo”:“1”,“typethree”:“1”
这样就好了。直到我尝试使用以下数据填充表单:
$.each(data, function (name, val) {
var $el = $('[id="e' + name + '"]'),
type = $el.attr('type');
switch (type) {
case 'checkbox':
$el.filter('[value="' + Boolean(val) + '"]').attr('checked', 'checked');
break;
case 'radio':
$el.filter('[value="' + val + '"]').attr('checked', 'checked');
break;
default:
$el.val(val);
}
});
在此http://jsfiddle.net/z66XF/11/您可以看到,当数据来 self 的数据库并以字符串形式给出“boolean ”值时,用于勾选复选框的数据不起作用。
“0”最终被评估为真。
有什么方法可以转换它或让 javascript 将其视为 boolean 值吗?
最佳答案
您可以使用 Unary Plus Operator将字符串转换为数字
Boolean(+val)
基本示例:
var one = "1";
var zero = "0";
console.log("one", one, Boolean(+one)); //one "1" true
console.log("zero", zero, Boolean(+zero)); //zero 0 false
JSFiddle:
关于javascript - 如何让 Javascript 将通过 AJAX 请求提取的 tinyint(1) 数据视为 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414637/