如何为每个复选框添加新的输入? -Codeigniter

时间:2019-02-24 22:51:27

标签: javascript php jquery

我的项目(codeigniter)中有以下HTML和PHP代码:

<div class="row">
    <div class="col-md-8">
    <?php foreach($hardware as $hardware): ?>                                      
        <input type="checkbox" id="<?=$hardware['id_elemento']?>" name="hardware[]" value="<?           =$hardware['id_elemento']?>">
        <label class="mx-2" for="<?=$hardware['id_elemento']?>"><?=$hardware['elemento']?>               </label>

    <?php endforeach; ?>
    </div>
    <div class="col-md-6">
      <input type="number" placeholder="Cantidad" id="mname" name="mname" class="form-control         col-2" />
      <hr>
    </div>
</div>

var checkbox = document.getElementById('29');
var input = document.getElementById('mname');
checkbox.addEventListener('click', function () {
    if (input.style.display != 'block') {
        input.style.display = 'block';
    } else {
        input.style.display = '';
    }
});

我想做的是为每个复选框添加一个新输入。每个新输入类型号是我要在列表中检查的每种硬件的数量,但是使用此代码,我只输入一个。 。每个复选框都有一个不同的ID(分别为29、30、31、32)..等于hardware [],并且输入的名称/ id为:quantity []

我该如何为每个人做到这一点?对不起,我的英语不好

1 个答案:

答案 0 :(得分:0)

  1. 在复选框上创建事件(不变)。

  2. 如果现在选中了单击的复选框,请启动功能。

  3. 此功能必须创建适合您需求的自定义输入:

    var input = document.createElement("input"); input.setAttribute("class", "foo"); //etc...

  4. 最后将其附加到您想要的位置:yourdiv.appendChild(input)

    示例:

    var checkbox = document.querySelector("input[name=checkbox]");
    
    checkbox.addEventListener( 'change', function() {
        if(this.checked) {
            // Checkbox is checked..
        } 
    });