我有这段代码片段用jquery检查/取消选中radiobutton。
$.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”
这样的事情会发生什么原因?
由于
答案 0 :(得分:1)
试试这个: - 使用prop
代替attr
选中属性不会生效或错误。 checked
的存在暗示它被检查。
$.each(options, function (index, item) {
$optionli.find("li").eq(index)
.find("input[type='radio']")
.prop("checked", item.IsAnswer);
});
答案 1 :(得分:1)
checked
是一个属性,你应该使用prop
方法,当一个布尔属性如disabled或checked
被设置为一个元素时,该值被映射到相关的DOM属性元素(浏览器执行此操作)和attr
和removeAttr
方法不会更改元素的属性,因为jQuery 1.6用于修改属性,应使用prop()方法代替{{ 1}}。
attr