Javascript 满足第一个条件时正在执行的else块
我知道有很多这样的问题,但我找不到一个能回答根本问题的 我有一个简单的代码块,其中IF条件为true,但else块仍然执行。我已在调试控制台中检查该条件是否为真Javascript 满足第一个条件时正在执行的else块,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我知道有很多这样的问题,但我找不到一个能回答根本问题的 我有一个简单的代码块,其中IF条件为true,但else块仍然执行。我已在调试控制台中检查该条件是否为真 if (@Model.MajorAvailable.ToString().ToLower() == 'true') { $("#checkyes").attr('checked', true); } else { $("#checkno").attr('checked', true);
if (@Model.MajorAvailable.ToString().ToLower() == 'true') {
$("#checkyes").attr('checked', true);
} else {
$("#checkno").attr('checked', true);
}
这段代码看起来不错,但正如@Bravo所说,您仍然在比较字符串和布尔值@Model.MajorAvailable.ToString().ToLower()这一行返回stirng right?删除“true”中的引号似乎起到了作用-这很奇怪,因为调用了ToString()后,值不再是布尔值了不可能发生这种情况。
console.log(@Model.MajorAvailable.ToString().ToLower())
应用程序中的其他元素的输出是什么?您粘贴的内容没有问题。我们可以看看调用此代码块的位置吗?看起来要么是一个带有一些奇怪检查的循环,要么是你在别处修改了你的checkno
。@Dan是的,可能是这样的that@Lukasz032它只是在脚本中的文档就绪部分,“true”不是布尔值,它实际上是一个字符串。
if (@Model.MajorAvailable.ToString().ToLower() == true) {
$("#checkyes").attr('checked', true);
} else {
$("#checkno").attr('checked', true);
}