добавление флажка и значения поля ввода в HTML-таблицу - PullRequest
0 голосов
/ 04 июля 2018

У меня были трудности с добавлением значения флажка в редактируемую таблицу, и я был в запасе здесь ...

P.S. Я использую codeigniter ...

<div class="col-md-6">
<div class="form-group">
    <label for="exampleInputEmail1">Months</label>

    <?php foreach ($feetypeList as $feetype) { ?>
        <div class="checkbox">
            <label style="display: inline-block; max-height: 25px; list-style: none; float: left; padding-top: 5px; width: 130px; margin-right: 40px;">
            <input class="chkAdd" type="checkbox" name="feetype_id" value="<?php echo $feetype['id'] ?>" <?php echo set_checkbox('feetype_id', $feetype['id']); ?> ><?php echo $feetype['type'] ?>
            </label>
        </div>
    <?php } ?>
         <span class="text-danger"><?php echo form_error('feetype_id'); ?></span>
</div>

Таблица, в которую необходимо вставлять автоматически при установке флажка

  <div class="box-body col-md-12">
<div class="table-responsive">
    <table class="table table-striped table-bordered table-hover" id="feeMasterEntryTable">
        <thead>
            <tr>
                <th>Month</th>
                <th>Start Date</th>
                <th>Due Date</th>
                <th>Amount</th>
                <th>Penalty</th>
                <th class="text-right"></th></tr>
        </thead>
        <tbody class="form-horizontal" id="tbodyContent"></tbody>
    </table>
</div>
  </div>

Вот мой JavaScript

  <script type="text/javascript">
    $('.chkAdd').click(function(){
    var text = "";
    $('.chkAdd:checked').each(function(){
        text += $(this).val()+ ',';
    });
    text = text.substring(0,text.lenght-1);
    $('#tbodyContent').val(text);
    });
  </script>

Моя фактическая таблица, куда должна попасть введенная информация:

enter image description here

1 Ответ

0 голосов
/ 04 июля 2018

Ваш js-код установил неправильное значение, когда вы используете text += $(this).val()+ ',';, в этом случае this ссылается на текущий элемент click, поэтому вы получите одно и то же значение несколько раз.

Когда вы используете each, вам нужно использовать element вместо this

$('.chkAdd').click(function(){
  var text = "";
  $('.chkAdd:checked').each(function(index,element){
    text += $(element).val()+ ',';
  });
  text = text.substring(0,text.lenght-1);
  $('#tbodyContent').val(text);
});


Обновленный ответ: если вы хотите заполнить содержимое таблицы tbodyContent, то $('#tbodyContent').val(text) недопустимо. Вы можете использовать либо $('#tbodyContent').html(text), либо $('#tbodyContent').append(text), в зависимости от значения text.

Значение text должно быть таким, как показано ниже:

text='<tr><td>AA</td><td>BB</td></tr>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...