2014-10-11 2 views
0

Как рассчитать общий итог из всего, используя скрипт java (onkeyup)? Это мое кодированиеРассчитать общее количество с помощью javascript (onkeyup)

<html> 
    <head> 
     <form method = "POST" action="text.php" name="form"> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <link rel="stylesheet" href="css/jquery-ui.css"/> 
     <script src="js/jquery-1.9.1.js"></script> 
     <script src="js/jquery-ui.js"></script> 
     <!--<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>--> 
     <script type="text/javascript"> 

     function cal1() { 
     var a = $(".qty1").val(); 
     var b = $(".price1").val(); 
     c1 = a * b; //a * b 
     $(".total1").val(c1); 
     } 

     function cal2() { 
     var a = $(".qty2").val(); 
     var b = $(".price2").val(); 
     c2 = a * b; //a * b 
     $(".total2").val(c2); 
     } 

     function grandtotal() { 
     var a = $(".total1").val(); 
     var b = $(".total2").val(); 
     z = a+b; //+ 
     $(".grandtotal").val(z); 
     } 
     </script> 

    </head> 
    <body> 


<table border="1"> 
        <tr> 
         <td> 
          <table height="51" border="0" cellspacing="2"> 
           <tr> 
            <td> 
             <div align="center">Price</div> 
            </td> 
            <td> 
             <div align="center"> Total Price</div> 
            </td> 
           </tr> 
           <tr> 

            <td> 
             <input class="qty1" type="text" name="qty1" onblur="qty_blur(this);" onkeyup="cal1();" value=""> 
            </td> 
            <td> 
             <input class="price1" type="text" name="price1" onblur="price_blur(this);" onkeyup="cal1();" value=""> 
            </td> 
            <td> 
             <input class="total1" type="text" name="total1" value="0" readonly=true onkeyup="grandtotal();"> 
            </td> 
           </tr> 
           <tr> 
            <td> 
             <input class="qty2" type="text" name="qty2" onblur="qty_blur(this);" onkeyup="cal2();" value=""> 
            </td> 
            <td> 
             <input class="price2" type="text" name="price2" onblur="price_blur(this);" onkeyup="cal2();" value=""> 
            </td> 
            <td> 
             <input class="total2" type="text" name="total2" value="0" readonly=true onkeyup="grandtotal();"> 
            </td> 
           </tr> 
          </table> 
         </td> 
        </tr> 
       </table> 
       <table> 
        <tr div class="grandtotal"> 
         <td> 
          Grand Total : 
         </td> 
         <td> 
          <input class="grandtotal" name="grandtotal" type="text" readonly=true value=""> 
         </td> 
        </tr> 
        </div> 
       </table> 
    </body> 
</html> 

это уже правильно для Cal1 и Cal2, но общий итог держать пустым, когда кал и CAL2 уже вычислить ?? Как сделать подсчет общего числа автоматически + ??? форма общая сумма cal1 и общая сумма cal2

+0

Используйте 'parseInt()' или 'parseFloat()' для разбора текстовых значений из полей ввода в числовое значение. (Итак: 'var a = parseInt ($ (". Total1 "). Val());') – myfunkyside

+0

и могу ли я предложить вам также использовать 'var' перед' c1', 'c2' и' z'? (иначе они будут отображаться как глобальные переменные) – myfunkyside

+0

Thx для урского комментария, и так? var a = parseInt ($ (". qty1"). val()); \t \t \t var b = parseInt ($ (". Price1"). Val()); \t \t \t var c1 = parseInt (a) + parseInt (b); \t \t \t $ (". Total1"). Val (c1); – Vilthering

ответ

0

Вы связали grandtotal с итогами ввода onkeyup. Но эти входы никогда не получат onkeyup, потому что они readonly.

В качестве быстрого решения я предлагаю просто вызывающий grandtotal от cal1 и cal2:

function cal1() { 
     var a = $(".qty1").val(); 
     var b = $(".price1").val(); 
     c1 = a * b; //a * b 
     $(".total1").val(c1); 
     grandtotal(); 
    } 

    function cal2() { 
     var a = $(".qty2").val(); 
     var b = $(".price2").val(); 
     c2 = a * b; //a * b 
     $(".total2").val(c2); 
     grandtotal(); 
    } 

Кроме того, как @myfunkyside предложить, вы должны правильно проанализировать входы чисел. В противном случае вы получите суммы, объединенные как строки.

function grandtotal() { 
     var a = parseInt($(".total1").val(), 10); 
     var b = parseInt($(".total2").val(), 10); 
     z = a+b; //+ 
     $(".grandtotal").val(z); 
    } 
+0

Thx для ur comment :) – Vilthering