-1

因此,出于我无法控制的原因,我使用的是 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 的版本是什么?

4

1 回答 1

1

var ob = $("#criteriaVm.WasApproved")is 不选择带有id="criteriaVm.WasApproved"(并ob.length;返回0)的元素。

它选择一个id="criteriaVm"具有类名的元素class="WasApproved"(不存在)

在属性.中使用[或总是会导致 jquery 选择器出现问题,这就是为什么这些方法在生成属性时用(下划线)替换这些字符的原因。]idHtmlHelper_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
于 2017-03-08T04:59:15.343 回答