2012-05-21 4 views
0

Я использую очень полезный JQuery Calulation плагин найти здесь,Добавление Расчет налога на Jquery Расчет плагин

http://www.pengoworks.com/workshop/jquery/calculation/calculation.plugin.htm

Я использую его для расчета по отдельным позициям итогов и суб итоги котировок формы , Я работаю так, чтобы он вычислял отдельные позиции и общее число. Следующим моим требованием является добавление суммы налога и, наконец, Grand Total. Именно здесь мои возможности jQuery подошли к концу. Я пробовал несколько вещей, но просто в итоге сломал все. Сумма налога исправлена, так что мне нужно сделать, это взять итог и использовать это, чтобы рассчитать сумму налога с, а затем добавить сумму налога в общую сумму, чтобы создать общую сумму.

До сих пор у меня есть этот сценарий,

<script type="text/javascript" src="/uploads/JS/jquery.calculation.min.js"></script> 

<script type="text/javascript">  
    var bIsFirebugReady = (!!window.console && !!window.console.log); 

    $(document).ready(

     function(){    
      // bind the recalc function to the quantity fields 
      $("input[id^=q]").bind("keyup", recalc);  
      $("input[id^=p]").bind("keyup", recalc);  
      // run the calculation function now  
      recalc(); 

      // automatically update the "#totalSum" field every time  
      // the values are changes via the keyup event 
      $("input[name^=sum]").sum("keyup", "#totalSum"); 

      // this calculates the sum for some text nodes  
      $("#idTotalTextSum").click(

       function(){  
        // get the sum of the elements  
        var sum = $(".textSum").sum(); 

        // update the total  
        $("#totalTextSum").text("€" + sum.toString());  
       }  
      ); 

      // this calculates the average for some text nodes  
      $("#idTotalTextAvg").click( 
       function(){  
        // get the average of the elements  
        var avg = $(".textAvg").avg();  

        // update the total  
        $("#totalTextAvg").text(avg.toString());  
       }  
      );  
     }  
    ); 

    function recalc(){  
     $("[id^=total_item]").calc( 
      // the equation to use for the calculation  
      "qty * price",  
      // define the variables used in the equation, these can be a jQuery object 

      {  
       qty: $("input[id^=q]"), 
       price: $("input[id^=p]")  
      }, 

      // define the formatting callback, the results of the calculation are passed to this function  
      function (s){  
       // return the number as a dollar amount  
       return "€" + s.toFixed(2);  
      },  
      // define the finish callback, this runs after the calculation has been complete  
      function ($this){  
       // sum the total of the $("[id^=total_item]") selector  
       var sum = $this.sum();  

       $("#myTotal").val( 
        // round the results to 2 digits 
        "€" + sum.toFixed(2)  
       );  
      }  
     );  
    }  
</script> 

И это фрагмент из HTML,

<tr>  
<td valign="middle" align="center" style="width: 15%;">  
<select class="cms_dropdown" id="t5" name="cntnt01fbrp__914">  
<option value="(none)">(none)</option> 
<option value="tasks">Tasks</option> 
<option value="resources">Resources</option> 
<option value="expenses">Expenses</option> 
<option value="other">Other</option> 
</select>  
</td> 
<td class="quote_textarea" valign="middle" align="center">  
<textarea cols="80" rows="10" class="cms_textarea" id="d5" name="cntnt01fbrp__915">  
Shower Riser Budget  
</textarea>  
</td>  
<td valign="middle" align="center" style="width: 10%;"> 
<input type="text" value="1" size="25" maxlength="80" id="q5" name="cntnt01fbrp__916">  
</td>  
<td valign="middle" align="center" style="width: 10%;">  
<input type="text" value="€27.00" size="25" maxlength="80" id="p5" name="cntnt01fbrp__917">  
</td>  
<td valign="middle" align="center" style="width: 10%" id="total_item_5"></td>  
</tr> 

<tr> 
<td valign="middle" align="center" style="width: 15%;"> 
<select class="cms_dropdown" id="t6" name="cntnt01fbrp__918">  
<option value="(none)">(none)</option>  
<option value="tasks">Tasks</option>  
<option value="resources">Resources</option>  
<option value="expenses">Expenses</option>  
<option value="other">Other</option> 
</select>  
</td> 
<td class="quote_textarea" valign="middle" align="center">  
<textarea cols="80" rows="10" class="cms_textarea" id="d6" name="cntnt01fbrp__919">  
Expenses  
</textarea> 
</td>  
<td valign="middle" align="center" style="width: 10%;">  
<input type="text" value="1" size="25" maxlength="80" id="q6" name="cntnt01fbrp__920">  
</td>  
<td valign="middle" align="center" style="width: 10%;">  
<input type="text" value="€20.00" size="25" maxlength="80" id="p6" name="cntnt01fbrp__921"> 
</td>  
<td valign="middle" align="center" style="width: 10%" id="total_item_6"></td> 
</tr> 

<tr> 
<td colspan="4" align="right">Subtotal </td>  
<td valign="middle" align="center"><input type="text" name="cntnt01fbrp__1104" value="0.00" size="25" maxlength="80" id="myTotal" /></td>  
</tr>    

<tr class="tax"> 
<td colspan="4" align="right">Tax (19.6%)</td>   
<td valign="middle" align="center"><input type="text" name="cntnt01fbrp__1105" value="0.00" size="25" maxlength="80" id="tax"/></td> 
</tr> 

<tr>  
<td colspan="4" align="right"><b>Total</b></td>  
<td valign="middle" align="center"><input type="text" name="cntnt01fbrp__1106" value="0.00" size="25" maxlength="80" id="total" /></td>  
</tr> 

Если кто-то может помочь было бы очень признателен.

Большое спасибо

Chris

ответ

0

Изменение налоговой части HTML:

<tr class="tax"> 
<td colspan="4" align="right">Tax (19.6%)</td> 
<td valign="middle" align="center"> 
    <input type="hidden" name="cntnt01fbrp__1105" value="19.6" size="25" maxlength="80" 
    id="tax" /> 
    <input type="text" id="taxAmount" name="taxAmount" size="25"> 
</td> 
</tr> 

<tr> 
<td></td> 
<td colspan="3" align="right"><button type="button" onclick="Compute();">Get Total</button> 
</td> 
<td valign="middle" align="center"> 
    <input type="text" name="cntnt01fbrp__1106" value="0.00" size="25" maxlength="80" 
    id="newTotal" /> 
</td> 
</tr> 

и добавить эту функцию к сценарию:

function Compute() { 
     var Total = document.getElementById("myTotal").value; 
     var Tax = document.getElementById("tax").value; 
     var NewTotal = document.getElementById("newTotal"); 
     var TaxAmount = document.getElementById("taxAmount"); 
     Total = parseFloat(Total); 
     Tax = parseFloat(Tax); 
     TaxAmount.value = Math.max((Total * Tax)/100).toFixed(2) + "" 
     NewTotal.value = Math.max(Total + (Total * Tax)/100).toFixed(2) + ""; 
    } 

Если вы получаете NaN результат, удалите знак «€» из сценария и из входных значений.

+0

Кстати, я оставил бы входные данные, промежуточные итоги и итоговые значения как только для чтения, поэтому они не могут быть изменены пользователями вашей формы. – tsirwani

Смежные вопросы