我有一个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()。
谢谢,
答案 0 :(得分:0)
var isChecked = $(this).is(':checked');
var id = $(this).attr('id');
答案 1 :(得分:0)
将click事件(或更改)绑定到元素将触发回调函数,其上下文(this关键字)等于作为事件目标的元素(即,单击任何一个复选框)。我正在使用jQuery 1.7,并且click事件对我来说在复选框上运行正常。
我建议使用一个类来区分要监视的复选框而不是名称,因为类已针对jQuery选择引擎中的选择进行了优化。
$(':checkbox.im_special').click(function () {
var $this = $(this);
var id = $this.attr('id');
var checked = $this.is(':checked');
})
答案 2 :(得分:0)
$('input:checkbox[name=chkBox]').click(function () {
if ($(this).is(':checked'))
alert($(this).attr('id'));
});
这将在选中输入时提醒已选中的复选框,而不是取消选中。如果您需要将已触发事件更改为“更改”,请执行此操作。但是我发现它在IE中表现不如“点击”对于跨浏览器的兼容性。不确定它在jquery mobile中的表现,抱歉。
答案 3 :(得分:0)