如何让Javascript将通过AJAX请求提取的tinyint(1)数据视为布尔值



我遇到了一个问题,经过数小时的寻找答案和摆弄,我无法让它发挥作用。

我的问题。我有一个MYSQL数据库。当我通过PHP从数据库中提取"布尔"数据时,它就很好了。PHP将1和0的"字符串"解释为True和False。然而,当我检索这些数据以使用Ajax填充表单时,我遇到了一个问题。

字符串显示为:{"id":"478","name":"aaaa","manager":"385","usertype":"0","typeone":"零","typetwo":"1","type three":"%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/您可以看到,当数据来自我的数据库,并且"布尔"值以字符串形式给出时,用于勾选复选框的数据就不起作用了。

"0"最终被评估为true。

有没有什么方法可以转换它,或者让javascript将其视为布尔值?

您可以使用一元加运算符将字符串转换为数字

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:

http://jsfiddle.net/JJRP3/

相关内容

  • 没有找到相关文章

最新更新