我有一个带文本框的asp.net webform。文本框的值为“False”,并已通过在浏览器中查看页面源进行验证。
尽管设置为false,但以下代码会导致beginDateReqd
设置为false,因此,DateParms
会显示为var beginDateReqd = Boolean($('.HiddenBeginDateTimeRequired').val());
if (beginDateReqd) {
$('.DateParms').show();
}
。
{{1}}
我做错了什么?谢谢!
答案 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");