Javascript on change更新foreach中的输入值

时间:2016-07-14 07:42:30

标签: javascript

所以我必须从一个下拉列表中更新每个表单中的值

以下是我的论坛选择框中的代码

              echo $this->Form->input('groups', ['options' => $groups, 'id' => 'groups', 'class' => 'selectpicker', 'label' => false, "onchange"=>"updateGroupId(this.value)"]);

这是我生成表单的代码

<table class="table table-striped">
       <tbody>
       <?php foreach($allProducts as $product): ?>
         <tr>
             <td>
                <form class="form-inline" name="uploadform-<?= $product->id ?>" id="uploadform-<?= $product->id ?>" onsubmit="return checkInput<?= $product->id ?>()" enctype="multipart/form-data" action="/upload/<?= $product->id ?>" method="post">
                  <span class="btn btn-primary btn-file">
                    <span><i class="zmdi zmdi-upload zmdi-hc-fw"></i><?= __('Upload CSV') ?></span>
                    <input id="browsefiles-<?= $product->id ?>" name="uploadcsv" type="file" required="required" />
                    <span id="errornotification-<?= $product->id ?>" class="hidden"><?= __('Select CSV File') ?></span>
                  </span>
                  <input type="text" name="group_id-<?= $product->id ?>" id="group_id-<?= $product->id ?>" value="<?= key($groups) ?>" />
                </form>
             </td>
         </tr>
       <?php endforeach; ?>
       </tbody>
     </table>

这是我的javascript代码

<?php
$i=0;
foreach ($allProducts as $product) {
?>
  function updateGroupId(ish){
    document.forms["uploadform-<?= $product->id ?>"]["group_id-<?= $product->id ?>"].value = ish;
  } } ?>

使用此代码,我可以仅为最后一次输入更新更改值,但我需要所有输入(groups_id)。

1 个答案:

答案 0 :(得分:0)

我已经找到了答案,所以如果有人需要解决方案,那就是!

因此,这是如何使用选择框(on.change函数)使用相同 名称更改所有输入的值

选择框 选择输入需要 - &gt;

"onchange"=>"updateGroupId(this.value)"

输入变更

<input type="hidden" name="group_id" value="<?= key($groups) ?>" />

和JS代码

function updateGroupId(ish){
      var group_ids = document.getElementsByName('group_id');
      for (var i=0;i<group_ids.length;i++) {
        group_ids[i].value = ish;
      }
    }