2015-03-30 40 views
0

在此脚本中有些内容不起作用。 我需要检查一个单选按钮以总价格添加金额。 这样做很好,但是如果我检查不同的单选按钮,它会广告所有人。 如果我有总数= 100 $;和按钮1 = $ 10,按钮2 = $ 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

请发布相关的HTML,以便我们能排除故障。 – 2015-03-30 19:02:11

+0

[使用jQuery根据动态无线电输入属性值更改总输入值]的可能重复(http://stackoverflow.com/questions/28993670/change-total-input-value-according-to-dynamic-radio-input- attribute-values-with)(因为有一个jQuery标签) – 2015-03-30 19:03:31

+0

如何检查所有3个单选按钮?只有一个按钮可以被检查。 – Barmar 2015-03-30 19:04:32

回答

0

每一次,你操作过总以前计算的。

出错行:

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

取而代之的是,将其更改为操作关原,清洁值。

+0

可以请你写下线吗?我尝试设置var totalu = document.getElementById(“totl”)。value;并使用total = parseFloat(parseFloat(totalu)+15.0).toFixed(2); – learning 2015-03-30 19:26:24

+0

添加输出表单的代码。 – McAden 2015-03-31 16:43:14

+0

$ Tott + = $ Ret ['p_price']; <?php echo number_format($ Tott,2,'。',''); ?> – learning 2015-03-31 18:29:04

相关问题