Javascript - 2 утверждения для одного условия

Я пытаюсь разрешить показ моих цен при двух условиях

  1. цена продажи должна быть ниже базовой цены
  2. "не показывать цену не проверено" (да или нет) в нашей системе

    var basPrc = "$5000";
    var onlnPrc = "<%=getAttribute('item','382798','salesprice')%>";
    var CallForPrice = "<%=getAttribute('item','382798','dontshowprice')%>";
    
    if (onlnPrc < basPrc || CallForPrice == "No") { 
     document.write('<span class="strike">Base Price: <span>'+basPrc+'</span></span>')
     document.write("<br /><strong class=\"saleprice\">Our Price: <%=getAttribute('item','382798','salesprice')%></strong><br />");
    //savings
    var savings = onlnPrc - basPrc;
    document.write ('<span class="save">You Save: <span class="red">'+ savings +'</span></span><br />');
     }
       //if don't show pricing is checked
        if (CallForPrice = "Yes") { 
          var basPrc = null;
          var onlnPrc = null;
         document.write('<br /><strong class="saleprice">Call For Pricing<strong><br />');
        }
    
    
     //if no online pricing
     else {document.write('<br /><strong class="saleprice">Our Price: '+basPrc+' <strong><br />');}
    

Я попробовал операторы "&&" и не повезло, есть идеи, что мне делать дальше?

1 ответ

Ваш basPrc является строкой, а не числом; Вы должны инициализировать его 5000не "$5000" (отсутствие кавычек здесь важно). Я не совсем уверен, что onlnPrc будет. Вы должны убедиться, что оба числа. В противном случае, когда вы делаете basPrc > onlnPrc Вы будете сравнивать строки, а не числа.

// Base Price defaults to 5000
var basPrc = 5000;

// Parse the Online Price as a floating point number;
// if the result is NaN, default it to 0
var onlnPrc = parseFloat("<%=getAttribute('item','382798','salesprice')%>") || 0;

Вы должны стремиться убедиться, что basPrc а также onlnPrc всегда числа, так как вы делаете вычисления с ними. Оставьте отображение символов валюты или десятичных знаков для фрагментов кода, где вы фактически отображаете данные.

Несвязанный вопрос: где этот код живет? Для чего это? Я никогда не видел код NetSuite, который выглядел бы примерно так.

Другие вопросы по тегам