如何获取用户使用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()。

谢谢,

如何获取用户使用jQuery刚刚选中的复选框的id

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中的表现,抱歉。

叹气,我对所有复选框都有相同的名称,这就是它循环遍历所有复选框的原因。我给每个复选框起了一个不同的名字,它现在可以工作了