如何通过单击带有javascript的复选框将ID添加到数组?

时间:2018-01-15 20:14:34

标签: javascript jquery html thymeleaf

我有一个带有一些值的表,最后一个输入是一个复选框。 我只需要在检查时将输入的id保存到数组中。

这是我的部分表格:

<table id="produtcTable" class="table">
   <thead class="thead-dark">
       <tr>
           <th scope="col">Producto</th>
           <th scope="col">Precio de lista</th>
           <th scope="col">Agregar</th>
       </tr>
   </thead>
   <tbody>
       <tr th:each="stock : ${stockList}">
           <td th:text="${stock.productName}"></td>
           <td th:text="${stock.price}"></td>
           <td class="text-center">
               <input class="form-check-input" type="checkbox" th:attr="id=${stock.stockCode}" onclick="myFunction(this)" aria-label="...">

这是我的javascript不起作用:

<script >
   function myFunction(product) {
       var arr= [];
       $('input[id='+ product.id +']:checked').each(function () {
             arr.push(product.id);
             });
        alert(arr.toString());
        };
</script>

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我在您的代码段中看不到您的id属性复选框。但是有些代码我无法识别(在帖子中没有提到)设置id。请确保您当前的DOM中有一个ID(浏览器开发工具:检查器)。根据您的片段,您可以尝试以下内容:

<input type="checkbox" id="cb1" onclick="myFunction(this)"/>
<input type="checkbox" id="cb2" onclick="myFunction(this)"/>

以下JS代码将更新全局数组中单击的复选框id:

var arr= [];
function myFunction(inputCB) {
  arr.push(inputCB.id);
  alert(arr);
}