2014-10-12 67 views
0

对不起,如果我问到与以前类似的事情,但我已经尝试过,并在编码javascipt时感到困惑。 和以前一样,我想用只有NaN的条件= 0的条件来计算Grand总数,如果不是NaN = Total。当我尝试条件isNaN它是正确的,但如果不是NaN,他总是= 0为什么?我已经尝试onKeyup,onBlur,并onChange也许我有错误的功能?可以帮助我吗?如何计算列的总和只是条件的内容?

<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 = parseInt($(".qty1").val()); 
    var b = parseInt($(".price1").val()); 
    var c1 = a * b; //a * b 
    $(".total1").val(c1); 
    grandtotal(); 
    } 

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

    function cal3() { 
    var a = parseInt($(".qty3").val()); 
    var b = parseInt($(".price3").val()); 
    var c3 = a * b; //a * b 
    $(".total3").val(c3); 
    grandtotal(); 
    } 

    function grandtotal() { 
    var a1 = parseInt($(".total1").val()); 
    var b1 = parseInt($(".total2").val()); 
    var c1 = parseInt($(".total3").val()); 
    if (isNaN(a1.value) == true) 
    { 
     var a1=0; 
    } 
    else 
    { 
     var a1 = parseInt($(".total1").val()); 
    } 
    if (isNaN(b1.value) == true) 
    { 
     var b1=0; 
    } 
    else 
    { 
     var b1 = parseInt($(".total2").val()); 
    } 
    if (isNaN(c1.value) == true) 
    { 
     var c1=0; 
    } 
    else 
    { 
     var c1 = parseInt($(".total3").val()); 
    } 
    var z = a1+b1+c1; // a1+b1+c1 
    $(".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> 
          <tr> 
           <td> 
            <input class="qty3" type="text" name="qty3" onblur="qty_blur(this);" onkeyup="cal3();" value=""> 
           </td> 
           <td> 
            <input class="price3" type="text" name="price3" onblur="price_blur(this);" onkeyup="cal3();" value=""> 
           </td> 
           <td> 
            <input class="total3" type="text" name="total3" 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> 

回答

0

数字不会有.value财产;只需检查号码本身。另外,isNaN返回一个布尔值,所以你不需要检查== true

if (isNaN(a1)) { 
    var a1=0; 
} 
+0

哦,你妳对Thx很多你的评论哈哈 – Vilthering 2014-10-12 09:35:22