如何在javascript / jQuery中将字符串值计算为布尔值?

时间:2011-11-15 19:22:44

标签: javascript jquery

我有一个带文本框的asp.net webform。文本框的值为“False”,并已通过在浏览器中查看页面源进行验证。

尽管设置为false,但以下代码会导致beginDateReqd设置为false,因此,DateParms会显示为var beginDateReqd = Boolean($('.HiddenBeginDateTimeRequired').val()); if (beginDateReqd) { $('.DateParms').show(); }

{{1}}

我做错了什么?谢谢!

5 个答案:

答案 0 :(得分:2)

更安全的是首先将值转换为“toLowerCase”,然后与“true”值进行比较:

var beginDateReqd = ($('.HiddenBeginDateTimeRequired').val().toLowerCase() == "true");
if (beginDateReqd) {
    $('.DateParms').show();
}

答案 1 :(得分:1)

为什么不使用比较运算符?

var beginDateReqd = ($('.HiddenBeginDateTimeRequired').val() == "True");
if (beginDateReqd) {
    $('.DateParms').show();
}

答案 2 :(得分:1)

    var beginDateReqd = parseBoolean ($('.HiddenBeginDateTimeRequired').val());
    if ( beginDateReqd  ) {
        $('.DateParms').show();
    }



function parseBoolean(str) {
  return /^true$/i.test(str);
}

答案 3 :(得分:0)

Boolean对象不解析字符串值的真实性。您应该使用比较运算符或正则表达式测试。见http://www.w3schools.com/js/js_obj_boolean.asp

答案 4 :(得分:0)

确认案例后使用比较

var beginDateReqd = ($('.HiddenBeginDateTimeRequired').val().toLowerCase() == "true");