Не могу проверить булево в JavaScript - PullRequest
0 голосов
/ 24 августа 2018

Я получаю значения из модели, но при проверке значений она всегда входит в 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);
  }
});

1 Ответ

0 голосов
/ 24 августа 2018

Я предполагаю, что вы получаете не правду или "истину" от @ Model.isMarketing, @ Model.isRevenue и т. Д. И никогда не используйте === в условии, когда вы используете новый логический (true), он не будет равен true с использованием ===.

Я хочу предложить вам несколько подходов:
1. Используйте! вместо нового логического (@ 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...