0

我有这个代码片段来检查/取消选中与 jquery 的单选按钮。

 $.each(options, function (index, item) {                   
                $optionli.find("li").eq(index)
                                    .find("input[type='radio']")
                                    .attr("checked", item.IsAnswer);

            });

item.IsAnswer 返回“true”或“false”,但未选中单选按钮,尽管在其 html 视图中,“checked”属性设置为“checked” 在此处输入图像描述

发生这种情况的原因可能是什么?

谢谢

4

2 回答 2

1

试试这个: - 使用prop而不是attr

检查为属性不取真或假。它的存在checked暗示它已被检查。

$.each(options, function (index, item) {                   
                $optionli.find("li").eq(index)
                                    .find("input[type='radio']")
                                    .prop("checked", item.IsAnswer);

            });
于 2013-05-02T05:29:42.180 回答
1

checked是一个属性,你应该使用prop方法,当一个布尔属性像 disabled 或被checked设置为一个元素时,该值被映射到元素的相关 DOM 属性(浏览器这样做)attr并且removeAttr方法不会改变元素的属性,从 jQuery 1.6 开始用于修改属性,应该使用prop()attr方法而不是.

$('input[type=radio]').prop('checked', function(i, state){
        return !state;
    });
于 2013-05-02T05:30:51.100 回答