如果选中了单选框,则向总计添加值

时间:2015-03-30 19:01:19

标签: javascript jquery

这个剧本有些不起作用。 我需要在检查一个单选按钮时以总价格添加金额。 这样做很好,但如果我检查不同的单选按钮,它会广告所有这些按钮。 如果我总计= 100 $;和button1 = 10 $,button2 = 10 $,button3 = 10 $ 如果我检查所有3 ...我会得到总数= 130 $而不是110 $

function calculateTotal(payment)
{
    var check=document.getElementById("check").value;
    var city = document.getElementsByName('loc');
    var value= payment.value;
    var total= document.getElementById("totl").value;
    var tcharge;
    var pvcharge=document.getElementById("ch").value;
    if(value==0 && check==0)
    return;

    if(value==0 && check==1)
    {
        total= parseFloat(parseFloat(total)-parseFloat(pvcharge)).toFixed(2);
        tcharge=0;
    }else
    {
    if(total>=200)
    return;
    if(value=='online' || value =='transfer_bancar' || value=='cash' || value == 'la_sediul_nostru')
        {
            if(city[0].checked)
            {
            total= parseFloat(parseFloat(total)+15.0).toFixed(2);
            tcharge=15.00;
            }
            else
            if(city[1].checked)
            {
            total= parseFloat(parseFloat(total)+30.0).toFixed(2);
            tcharge=30.00;
            }
        }
        else
        if(value='la_expeditor')
        {

        if(city[0].checked)
            {
            total= parseFloat(parseFloat(total)+30.0).toFixed(2);
            tcharge=30.00;
            }
            else
            if(city[1].checked)
            {
            total= parseFloat(parseFloat(total)+60.0).toFixed(2);
            tcharge=60.00;
            }
        }
        }

        document.getElementById("tot").innerHTML=total+" LEI";
        document.getElementById("totl").value=total;
        document.getElementById("amt").value=total;
        document.getElementById("tcharge").innerHTML=tcharge+" LEI";
        document.getElementById("check").value=1;
        document.getElementById("ch").value=tcharge;

}

收音机盒

    <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment" value="online" id="online" onClick="calculateTotal(this); return empty();" /> <span class="fontext"><b>asdadasdad</b></span></td>                
    </tr>
    <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment"  value="transfer_bancar" id="bancar" onClick="calculateTotal(this); return bancarval();" /> <span class="fontext"><b>asdadadadasd</b></span></td>                
    </tr>
    <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment"  value="cash" onClick="calculateTotal(this);return empty();" /> <span class="fontext"><b>asdadadadadad</b></span></td>                
    </tr>

    <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment" value="la_expeditor" onClick="calculateTotal(this); return empty();" /> <span class="fontext"><b>asdadasdadad</span></td>        </tr>
    <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment" value="la_sediul_nostru" onClick="calculateTotal(this); return empty();" /> <span class="fontext"><b>asdadasdad</b></span></td>                
    </tr>
   <tr>
   <tr>
        <td colspan="2">&nbsp;&nbsp;<input type="radio" name="payment" value="0" onClick="calculateTotal(this); return empty();" /> <span class="fontext"><b>asdasdasd</b></span></td>        </tr>
   <tr>
        <td><span class="fontext"><b>Cost transport: </b></span></td> <td><span class="fontext" ><b id="tcharge">0.00 LEI</b></span></td>       </tr> 

和php

if($Tott<200)
if(isset($_POST['loc']))
{
$tcharges=$_POST['loc'];

        if(isset($_POST['payment']))
        {
            $payment=$_POST['payment'];
            if($payment!=0)
          if($payment=='online' || $payment =='transfer_bancar' || $payment=='cash' || $payment == 'la_sediul_nostru')
            {
                if($tcharges=='in')
                    $Tott+=15;
                    else
                    $Tott+=30;
            }else
            if($payment=='la_expeditor') 
            {
                if($tcharges=='in')
                    $Tott+=30;
                    else
                    $Tott+=60;

            }


        }
}

1 个答案:

答案 0 :(得分:0)

每次,您都在操作上一次计算的总和。

违规行:

    var total= document.getElementById("totl").value;

相反,将其更改为原始的干净值。