2016-10-04 1 views
1

Lorsque j'entre le montant dans la zone de texte, il passe à la fonction et ne fonctionne pas pour la boucle.Pourquoi la boucle For ne fonctionne pas en javascript en utilisant la fonction de clavier?

J'ai une table, elle montre plusieurs lignes dynamiques.

lignes ne comptent que count.value dans la fonction (javascript)

Et à cause de cette multiple ligne seulement je veux ajouter boucle prix (rec_qty * porate)

HTML

<?php 
$table=mysql_query("SELECT * from purchase_order"); 
while($table1=mysql_fetch_array($table)) 
{ 
    $i++; 

<tr> 
<td><input type="hidden" id="tatalrecord" value="<?php echo $i;?>"></td> 
<td><input type="text" style="width:45px" class="form-control rec_qty" onkeyup="myFunction()" id="rec_qty"></td> 

<td><input type="text" style="width:45px" class="form-control porate" onkeyup="myFunction()" id="porate"></td> 
</tr> 
<?php } ?> 
</table> 

JAVASCRIPT

function myFunction() { 
    var count = document.getElementById("tatalrecord"); 
    var cn = count.value; 
    alert(count.value); 
    for(var i = 0; i < cn; ++i) 
    { 
     alert("hi"); 
     var x = document.getElementById("rec_qty"); 
     var y = document.getElementById("porate"); 
     var z = x.value * y.value; 
    } 
} 
+0

Ce qui montre alerte (count.val ue)? – steppefox

+0

Et où se trouve '# tatalrecord'? – adeneo

+1

fait-il même alerte ('salut') ' –

Répondre

1
<table> 
<tr> 
<td> Price </td> 
<td> Quantity </td> 
<td> Total </td> 
<tr> 
<?php 
    $table = mysql_query("select * from table_name"); 
    $i=0; 
    while($row = mysql_fetch_array($table)) 
    { 
?> 
    <tr> 
    <td> <input type="hidden" id="tatalrecord" value="<?php echo $i; ?>"></td> 
    <td> <input type="text" id="porate<?php echo $i; ?>" onkeyup="myFunction()" value="<?php echo $i; ?>"></td> 
    <td> <input type="text" id="rec_qty<?php echo $i; ?>" onkeyup="myFunction()" value="<?php echo $i; ?>"></td> 
    <td> <input type="text" readonly="" id="total"> </td> 
    </tr> 
} 
</table> 

Javascript

function myFunction() { 
    var z = 0; 
    var count = document.getElementById("tatalrecord"); 
    var cn = (count.value) ? parseInt(count.value) : 0; 
    alert(cn); 
    for (var i = 1; i <= cn; ++i) 
    { 
    var x = document.getElementById("rec_qty"+i); 
    var y = document.getElementById("porate"+i); 
    z = parseInt(x.value) * parseInt(y.value); 
    } 
} 
0

Salut Shruti j'ai essayé de court-circuiter votre problème i avait créé propre table à assumer la table rangée

espoir ce code vous aidera ....

<html> 
<head> 
    <script type="text/javascript"> 
     function myFunction() { 

      // var count = document.getElementById("tatalrecord"); 

      //Total no of rows in your table 
      var cn = document.getElementById("tatalrecord").getElementsByTagName("tr").length; 

      console.log(cn); 

      for(var i = 0; i < cn; ++i) 
      { 
       console.log("hi"); 
       alert('hi'); 
       var x = document.getElementById("rec_qty"); 
       var y = document.getElementById("porate"); 
       var z = x.value * y.value; 
       console.log(z); 
      } 
     } 
    </script> 
</head> 
<body> 
    <form> 
     <table id="tatalrecord"> 
     <tr><td>1</td></tr> 
     <tr><td>2</td></tr> 
     <tr><td>3</td></tr> 
     <tr><td>4</td></tr> 
     <tr><td>5</td></tr> 
     </table> 

     <input type="text" style="width:45px" class="form-control rec_qty" onkeyup="myFunction()" id="rec_qty"> 
     <input type="text" style="width:45px" class="form-control porate" onkeyup="myFunction()" id="porate"> 

    </form> 
</body> 
</html> 
1

function myFunction() { 
 
    var z = 0; 
 
    var count = document.getElementById("tatalrecord"); 
 
      var cn = (count.value) ? parseInt(count.value) : 0; 
 
      alert(count.value); 
 
      for (var i = 0; i < cn; ++i) 
 
      { 
 
       var x = document.getElementById("rec_qty"); 
 
       var y = document.getElementById("porate"); 
 
       z = parseInt(x.value) * parseInt(y.value); 
 
      } 
 
    
 
    
 
    document.getElementById("total").value = z 
 
     }
<html> 
 
<head> 
 
<script> 
 
    
 
</script> 
 
</head> 
 
<body> 
 
<table> 
 
<tr> 
 
    <input type="text" style="width:45px" value='2' id="tatalrecord"> 
 
<td><input type="text" style="width:45px" class="form-control rec_qty" onkeyup="myFunction()" id="rec_qty"></td> 
 

 
<td><input type="text" style="width:45px" class="form-control porate" onkeyup="myFunction()" id="porate"></td> 
 
</tr> 
 
</table> 
 
    
 
    total : <input type="text" style="width:45px" class="form-control porate" value="0" id="total"> 
 
</body> 
 
</html>

+0

Pourquoi continuez-vous à poster plus de réponses? Vous pouvez utiliser le lien [modifier] pour mettre à jour votre réponse originale ... Dans tous les cas, il vous serait utile de [modifier] la réponse pour expliquer ce que vous avez changé et pourquoi cela était nécessaire. (Par ailleurs, vous n'avez pas besoin de 'parseInt()', car l'opérateur '*' convertit ses opérandes en numériques.) – nnnnnn

+0

check Un champ total ajouté en dernier –

+0

avez-vous votre réponse? –