使用Jquery在循环内动态乘以值

时间:2017-10-07 11:47:06

标签: javascript php jquery

我有1个输入类型的字段...如果我更改了值,它将乘以循环上的值。这是示例......

<input type='number' id='values' name='values' onkeyup='multiplied()'>
<?php 
   foreach($data as $value)
   {
     $no = 1;
     echo "<input type='number' class='form-control value' id='value' name='value' readonly value=".$value['value'].">";
     echo "<input type='number' class='form-control' id='total' name='total' readonly >";
     $no++;
   }

?>

function multiplied()
{
  var values = $('#values').val();
  var value = $('.value').val();
  total = values * value;
  $('#total').val(total)
}

当我更改 id ='values' 的值时,如何动态地相乘值? 谢谢,任何帮助都会受到欢迎

2 个答案:

答案 0 :(得分:1)

您可以使用jquery on函数。

$(document).on('change', '#values', function() {
        var values = $("#values").val();            
        $(".value").each(function(index, element){
            values *= element.value;                 
            $(this).next('input#total').val(values);
        });
});

答案 1 :(得分:0)

多次使用相同的ID。请改用类。当你必须改变值

时,你必须循环遍历元素

变化

echo "<input type='number' class='form-control' id='total' name='total' readonly >";

echo "<input type='number' class='form-control total' name='total' readonly >";

在剧本中

<script>
function multiplied()
{
  var values = $('#values').val();
  $( ".value" ).each(function() {
      var value = $(this).val();
      total = values * value;
      $(this).next('input').val(total);
});

}
</script>

另外,请确保total输入字段

后,value输入字段正好位于下一个字段

或者如果nextAll输入字段不在total输入字段之后的下一个

,则您还可以将value与类名一起使用

<script>
function multiplied()
{
  var values = $('#values').val();
  $( ".value" ).each(function() {
      var value = $(this).val();
      total = values * value;
      $(this).nextAll('.total').val(total);
});

}
</script>