动态添加点击事件复选框,只适用于第一个复选框JQUERY
Dynamically adding click event to checkbox, only works for first checkbox JQUERY
所以我正在与每个控件上具有不同复选框区域的一对ascx一起工作。我最初使用
$('[type=checkbox]').click ( function(){ code });
一开始确实起了作用。但是当我添加另一个控件时,也使用复选框,该函数也会触发其他复选框,所以我将js升级为
$('#chck').click(function(){ code });
但是这样,它只会为列表中的第一个复选框触发一个事件。我怎样才能让它触发所有点击?
我也试过这个:
$('#chck').each(function(){ $(this).click({ function() { code }); });
,这只适用于第一个
下面是我的ascx页面示例:
<asp:Repeater ID="contacts" runat="server">
<ItemTemplate>
<tr>
<td>
<input type="checkbox" id="chck" />
</td>
.....
</tr>
</ItemTemplate>
</asp:Repeater>
这是我的JS代码段
$(document).ready(function(){
$("#chck").each(function () {
$(this).click(function () { onchange($(this)); });
});
});
function onchange(checkbox) {
// adds contact to list
}
id
必须唯一。用类代替:
<input type="checkbox" class="chck" />
$('.chck').click(function(){ code });
参见using same ids for multiple elems
on a same page is invalid.
IDs should be unique to each element. When this happens browser only selects first of it.
为了克服这个问题,必须将id
更改为class
。所以你have to do same thing with your markup change id to class
:
<input type="checkbox" class="chck" /> // <----change id to class for every input
现在你的脚本应该是:
$('.chck').each(function(){ //<-----use '.' notation for class selectors
$(this).click(function() {
onchange($(this));
});
});
相关文章:
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 复选框“全部”不适用于Jquery DataTable 1.10.5版本
- 函数更改不适用于动态创建的表的复选框
- 用于控制单选按钮的复选框
- Javascript:主复选框,用于控制表列中的所有复选框
- jQuery .change() 方法不适用于动态创建的复选框
- 获取用于编写JavaScript cookie的复选框
- 获取选中复选框的所有值,并将其用于url字符串
- Cordova Android javascript,用于检查多个复选框值
- 用于在dojo中动态设置复选框值(如已选中)的语法
- Javascript函数用于选择/取消选中radgrid标头模板中的所有复选框
- Javascript:检测复选框不适用于只有 1 个复选框的表单.使用 2 个或更多
- 流星 - 创建一个复选框,用于隐藏会话中已完成的决议
- Jquery for 复选框不适用于模型弹出窗口
- 复选框,用于选中其他复选框
- “CheckAll"复选框只适用于asp:Repeater的第一页.如何修复
- 复选框,用于从数据库回显的每个任务
- 复选框过滤器用于显示/隐藏用多个data-*属性装饰的元素
- Javascript复选框仅适用于1个窗体
- 带有ajax问题的复选框,用于选择或取消选择问题