函数更改不适用于动态创建的表的复选框
Function to change checkboxes not working on dynamically created table
我有一个表,每行都有三个复选框,我想做的是拥有它,这样每行只能选择一个复选框。如果选中某个复选框,则其他复选框将被取消选中。我目前拥有的代码如下:
$('#idCheckboxOne').on 'change', ->
if $('#idCheckboxOne').prop('checked')
$('#idCheckboxTwo').prop 'checked', false
$('#idCheckboxThree').prop 'checked', false
$('#idCheckboxTwo').on 'change', ->
if $('#idCheckboxTwo').prop('checked')
$('#idCheckboxOne').prop 'checked', false
$('#idCheckboxThree').prop 'checked', false
$('#idCheckboxThree').on 'change', ->
if $('#idCheckboxThree').prop('checked')
$('#idCheckboxTwo').prop 'checked', false
$('#idCheckboxOne').prop 'checked', false
因此,这段代码将适用于我的表的第一行,但不适用于任何其他行。我知道我的部分问题是,我通过复选框的id使用该函数,所以由于每个表行都有相同的复选框,所以id对于其他表行来说并不是唯一的。因此,我的问题是,对于每个表行,具有上述功能的最佳方法是什么?
两种方法:
- 使用单选按钮而不是复选框。只能选择一个具有相同名称的单选按钮
-
如果出于某种原因,你想使用复选框而不是单选按钮,你可以使用class而不是ids:
$('.classCheckboxOne').on 'change', -> if $('.classCheckboxOne').prop('checked') $('.classCheckboxTwo').prop('checked', false) $('.classCheckboxThree').prop('checked', false)
这将为您放置.group-checks
类的任何复选框提供一个通用解决方案。这也与父级无关,因此它可以在一行中,div-只要复选框在同一个容器中,就没关系。
// attach handler to all checkboxes
$('input:checkbox.grouped-checks').change(function(event) {
// get the container of the checkbox clicked
var $parent = $(this).parent();
// unchecked all inputs in the container
$parent.children('input[type="checkbox"]').prop('checked', false);
// check the one you clicked on
$(this).prop('checked', true);
});
这是代码笔:
相关文章:
- 在JavaScript中动态创建复选框
- 基于表中的列动态创建复选框
- 为xml谷歌地图生成的每个标记创建复选框
- 将“已创建”复选框设置为选中不起作用
- extjs 3.4使用combo store创建复选框组项目
- 从AJAX响应动态创建复选框
- 使用Font Awesome与AngularJs创建复选框
- 使用Bootstrap Glyphicons创建复选框功能
- Javascript 已创建复选框未正确关闭标记
- 从数组列表java中动态创建复选框
- 动态创建复选框单击事件,选择整行,而不仅仅是jquery数据表中的复选框.为什么呢?
- 应用iCheck (jQuery插件)来动态创建复选框
- 动态创建复选框;在ExtJS中点击按钮不会被选中
- 用javascript创建复选框
- 在XUL中使用DOM JavaScript动态创建复选框
- 创建复选框
- 可以在组合框中创建复选框
- 如何使用Jquery动态创建复选框
- 如何通过函数创建复选框
- 如何创建复选框的角度模式表单检查表