jquery 1.4.2和chrome ..检查复选框被检查....如何?

时间:2017-03-06 23:02:00

标签: jquery asp.net-mvc-3 razor checkbox jquery-1.4

因此,出于我无法控制的原因,我正在使用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我一直坚持?

1 个答案:

答案 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