Oké伙计们我正在开展一个项目:
<select class="select2" id="product1" onchange="shopCalculate(this.value)." >
<option value="4.1" >Option 1</option>
<option value="4">Option 2</option>
<option value="3.9">Option 3</option>
<option value="3.8">Option 4</option>
<option value="3.75">Option 5</option>
</optgroup>
<option value="3.7">Option 6</option>
<option value="3.65">Option 7</option>
<option value="3.6">Option 8</option>
<option value="3.5">Option 9</option>
<option value="3.5">Option 10</option>
</optgroup>
<option value="3.5">Option 11</option>
<option value="3.3">Option 12</option>
<option value="3.1">Option 13</option>
<option value="2.9">Option 14</option>
<option value="2.7">Option 15</option>
</optgroup>
<option value="2.5">Option 16</option>
<option value="2.3">Option 17</option>
<option value="2.1">Option 18</option>
<option value="1.9">Option 19</option>
<option value="1.7">Option 20</option>
</optgroup>
</select>
<ul>
<li><strong class="bg-info"><%= full_title(yield(:title)) %></strong></li>
<li id="product_type"></li>
<li id="product_sort"></li>
<li id="product_tag"></li>
<hr/>
<li>
<strong>
Total cost: <span id="cost_eur">€0.00 </span> (<span id="cost_usd" class="small">$0.00</span>)
</strong>
</li>
</ul>
<hr/>
function shopCalculate(a) {
var product1 = $('select[id=product_1]').val();
cost_eur.innerHTML = "€" + (a - product1).toFixed(2);
cost_usd.innerHTML = "$" + (a - product1 * 1.13 ).toFixed(2);
}
这将结果放在cost_eur和cost_usd中,但总值在某些情况下变为负值(即<0)。 我想要的是如果值得到的话,将标准数字设为10(&lt; 10) 10。我是怎么做到的,因为innerHTML会带出一个字符串。 我用parseFloat()尝试了一些东西,但显然这不起作用。任何帮助将不胜感激!
答案 0 :(得分:1)
再添加一个函数来计算总金额并像这样传递。希望它有所帮助。
function calculateTotalAmt(a, currencyType) {
var totalAmt;
var product1 = $('select[id=product_1]').val();
if(currencyType == 'euro') {
totalAmt = (a - product1).toFixed(2);
} else if(currencyType == 'usd') {
totalAmt = (a - product1 * 1.13 ).toFixed(2);
}
if(totalAmt != undefined && totalAmt < 10)
totalAmt = 10;
return totalAmt;
}
function divCalculate(a) {
cost_eur.innerHTML = "€" + calculateTotalAmt(a,'euro');
cost_usd.innerHTML = "$" + calculateTotalAmt(a,'usd');
}