Javascript - 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, который выглядел бы примерно так.