javascript中需要的逻辑

时间:2013-02-25 05:50:14

标签: javascript

我有一个选择工作正常,但我想要的是如果选择多个,那么必须添加10%的折扣,如何做到这一点

并在选中时将值乘以Java脚本

//javascript

function totprice(f,n,amt)
                {

                    var tot=0;
                    document.getElementById('lbl_tot'+n).value=amt*f;

                    for (var k=1; k<=document.getElementById('rowcnt').value; k++)
                    {

                            if(document.getElementById('lbl_tot'+k))
                            {
                                tot=parseInt(tot) + parseInt(document.getElementById('lbl_tot'+k).value);
                            }

                    }

                    document.getElementById('txttot').value=tot;

                    document.getElementById('txttotprice').value=tot;


                }

HTML

<select name="amt" id="amt" onchange="return totprice(this.value,2,110);">
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
  <option value="13">13</option>
  <option value="14">14</option>
  <option value="15">15</option>
  <option value="16">16</option>
  <option value="17">17</option>
  <option value="18">18</option>
  </select>

1 个答案:

答案 0 :(得分:0)

您的选择标记应为

<select name="amt" id="amt" onchange="return totprice(this.value,2,110);" multiple>

使其多选。现在,当用户选择多个选项(使用Shift +单击)时,在JavaScript函数中获取这些值并进行处理(提供折扣/任何逻辑)

<强>更新
您希望将用户选择的值乘以折扣金额(110)
在你的JS中有这个

var x = parseInt(f)*parseInt(amt);

If f = 2 and amt = 110 then x = 220。您需要通过默认基数为10 {/ em>

进行parseInt(value, radix)

实施例

var optionSelected = document.getElementById('amt').value;  //optionSelected is nothing but this.value
if(optionSelected > 1)
{
 //Offer discount
 var x = parseInt(f)*parseInt(amt);  //where f and amt is passed through function call
}
else
{
 // Do nothing/ other logic
}

希望这会有所帮助!!