我从模型中获取值,但是在检查值时,它总是进入条件的else
部分。我正在警告要获取的值,它们是正确的,但是在if
条件下,它不会令人满意。我什至尝试了===
。
$(document).ready(function() {
var mark = new Boolean(@Model.isMarketing);
var revenue = new Boolean(@Model.isRevenue);
var staff = new Boolean(@Model.isStaff);
if (revenue == true) {
$("input[name=isRevenue][value='isRevenue']").prop("checked", true);
} else if (staff == true) {
$("input[name=isRevenue][value='isStaff']").prop("checked", true);
} else if (mark === true) {
$("input[name=isRevenue][value='isMarketing']").prop("checked", true);
} else {
$("input[name=isRevenue][value='None']").prop("checked", true);
}
});
答案 0 :(得分:1)
我假设您从@ Model.isMarketing,@ Model.isRevenue等获得的不是真实或“真实”。 永远不要在使用新的Boolean(true)时使用===条件,使用===不会等于true。
我想为您推荐几种方法:
1.使用!而不是新的Boolean(@ Model.isMarketing);
例如
var mark = !!@Model.isMarketing;
2。只需删除新的Boolean()并使用,例如:
var mark = @Model.isMarketing;
if(mark) {
//do smth.
}
else {
//do smth else
};
我也想建议如何改善您的代码。
$(document).ready(function () {
var trueMark = 'True';
var mark = trueMark === @Model.isMarketing;
var revenue = trueMark === @Model.isRevenue;
var staff = trueMark === @Model.isStaff;
var value = 'None';
if (revenue) {
value = 'isRevenue';
}
else if (staff) {
value = 'isStaff';
}
else if (mark) {
value = 'isMarketing';
}
$("input[name=isRevenue][value="+ value + "]").prop("checked", true);
});
请确保从@Model中获取正确的值