jquery 1.4.2 和 chrome.. 检测复选框是否被选中....如何?

jquery 1.4.2 and chrome.. detecting a check box is checked....How?

所以出于我无法控制的原因,我使用 jquery 1.4.2 和 chrome..

我在尝试检测一个复选框是否被选中时遇到了很多麻烦......工作......

这是我的...

HTMl 由 asp.net Mvc3

生成
<input type="checkbox" name="criteriaVm.WasApproved" id="criteriaVm.WasApproved">

我试过的各种版本

            var ob = $("#criteriaVm.WasApproved");// is valid
            var chk = ob.attr('checked'); // undefined
            chk = ob.prop('checked');//crash
            chk = ob.get(0).checked;//crash
            chk = ob.get(0).is(":checked");//crash
            chk = ob.is(":checked");//undefined
            chk = ob.is(":checked");// always returns false

在我开始跟踪以确保我不只是绕圈子之前,我已经尝试过其他人...

有谁知道什么版本适用于旧学校jquery我一直在使用?

var ob = $("#criteriaVm.WasApproved") 不是 select 带有 id="criteriaVm.WasApproved" 的元素(和 ob.length; returns 0)。

它 select 是一个 id="criteriaVm" 的元素,它有一个 class 名称 class="WasApproved"(不存在)

id 属性中包含 .[] 将始终导致 jquery select 或 select 出现问题,这这就是为什么 HtmlHelper 方法在生成 id 属性时用 _(下划线)替换这些字符的原因。

将您的 id 属性更改为 id="criteriaVm_WasApproved"(或您喜欢的任何不包含无效字符的属性)并使用

<input type="checkbox" name="criteriaVm.WasApproved" id="criteriaVm_WasApproved">

var ob = $("#criteriaVm_WasApproved");
ob.length; // now return 1
var chk = ob.is(':checked'); // or ob.prop('checked'); etc