因此,出于我无法控制的原因,我正在使用jquery 1.4.2和chrome ..
我在检查复选框时遇到了麻烦......工作......
这是我的......
由asp.net Mvc3生成的HTMl
<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我一直坚持?
答案 0 :(得分:1)
var ob = $("#criteriaVm.WasApproved")
未选择id="criteriaVm.WasApproved"
元素(ob.length;
返回0
)。
选择一个id="criteriaVm"
的元素,其名称为class="WasApproved"
(不存在)
在.
属性中使用[
,]
或id
将始终导致jquery选择器出现问题,这就是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