javascript - 如何设置复选框值等于Javascript对象

标签 javascript jquery meteor checkbox

我想为列出的每个项目添加复选框,我使用每个循环来渲染列表,因此,当我选中该特定列表项目的复选框并移动到购物车时,我想将该项目对象作为值复选框。

{{#each list}}
    <input type="checkbox" name="list" >
    <p>{{this.title}}</p>
{{/each}}
<button class="btn btn-primary" id="addToCart" >ADD TO CART</button>

现在,当我单击按钮时,我希望它返回选中复选框的对象(即,当选中列表项 1 时,单击按钮应返回列表项 1,依此类推...)

注意:我想将复选框的值设置为等于列表项对象。

最佳答案

您需要将复选框的值设置为列表中项目的某个唯一标识符:

{{#each list}}
  <input type="checkbox" name="list" value="{{this.id}}" id="{{'list' + this.id}}" />
  <label for="{{'list' + this.id}}">{{this.title}}</label>
{{/each}}

(使用标签而不是段落允许用户单击文本来选择或取消选择复选框,无需任何 JavaScript)

然后您可以在按钮触发的调用中使用以下代码来获取所有选中的复选框的列表:

$.each($("input[name='list']:checked"), function() {
  //push the items to list or whatever you want
});
<小时/>

您可以尝试将整个对象设置为复选框值,但我没有尝试过,也不知道影响:

<input type="checkbox" name="list" value="{{this}}" id="{{'list' + this.id}}" />

关于javascript - 如何设置复选框值等于Javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38477549/

相关文章:

javascript - 为什么它说 'next' is not Defined in redux middleware code.中间件的下一个方法是否已弃用?

javascript - 如果视口(viewport)是移动的,则删除脚本

javascript - 无法使用 AngularJS 在下拉列表中设置所选选项

javascript - Jquery 设法打破,比较值

javascript - 尝试使用弹弓在 meteor 中使用模板助手在模板中预览图像

javascript - 如何将 FlowRouter 与 Meteor 1.3.1 和 "Import"一起使用

javascript - 它与 Javascript 不同,将 JSON 获取为 "text/html"和 "file"?

javascript - .click() jQuery 函数适用于一个 ID,但不适用于变量

javascript - initEvent+dispatchEvent 和 jquery 的 trigger ('click' 有区别吗)

javascript - Dropzone 卡在大于 1mb 的文件上