如何获取用户使用jQuery刚刚选中的复选框的id
本文关键字:id jQuery 复选框 何获取 获取 用户 | 更新日期: 2023-09-27 18:26:55
我有一个asp.net中继器,它将memberid绑定到jquery mobile的fieldcontain中包装的复选框的id。
<div data-role="fieldcontain" style="margin: 0px">
<fieldset data-role="controlgroup">
<asp:Repeater ID="rpt" runat="server">
<ItemTemplate>
<input type="checkbox" name="chkBox"
id="<%# DataBinder.Eval(Container.DataItem, "[MemberId]").ToString() %>"
class="custom" /><label for="<%# DataBinder.Eval(Container.DataItem, "[MemberId]").ToString() %>"><%# DataBinder.Eval(Container.DataItem, "[LastName]").ToString() %>,
<%# DataBinder.Eval(Container.DataItem, "[FirstName]").ToString() %></label>
</ItemTemplate>
</asp:Repeater>
</fieldset>
</div>
我有这个jQuery函数:
$('input:checkbox[name=chkBox]').change(function () {
var id = $(this).attr('id');
//var isChecked = $(this).attr('checked');
var isChecked = $('#'+id).is(':checked');
});
如何获取刚刚单击的复选框的id,并判断用户是选中还是未选中该复选框作为单击操作的结果?当前代码将循环通过所有复选框。由于某些原因,click()没有被捕获,所以我使用change()。
谢谢,
var isChecked = $(this).is(':checked');
var id = $(this).attr('id');
将点击事件(或更改)绑定到元素将触发回调函数,其上下文(this关键字)等于事件目标元素(即,单击的复选框)。我使用的是jQuery1.7,点击事件在复选框中运行良好。
我建议使用类来区分要监视的复选框,而不是使用名称,因为类是针对jQuery的选择引擎中的选择进行优化的。
$(':checkbox.im_special').click(function () {
var $this = $(this);
var id = $this.attr('id');
var checked = $this.is(':checked');
})
$('input:checkbox[name=chkBox]').click(function () {
if ($(this).is(':checked'))
alert($(this).attr('id'));
});
这应该在选中输入时提醒选中复选框,而不是在取消选中时。如果你需要将激发的事件更改为"change",那么就这样做。但我发现它在IE中的表现不如"click"在跨浏览器兼容性方面的表现好。不确定它在jquery mobile中的表现,抱歉。
叹气,我对所有复选框都有相同的名称,这就是它循环遍历所有复选框的原因。我给每个复选框起了一个不同的名字,它现在可以工作了