【问题标题】:Uncheck radio button on click using jquery使用jquery取消选中单击单选按钮
【发布时间】:2015-11-17 15:51:42
【问题描述】:
单选按钮仅在页面刷新时未选中
<input type="radio" name="test">
1<input type="radio" name="test">2
<input type="button" id="btn" />
$("#btn").click(function(){
$(':radio').each(function () {
$(this).removeAttr('checked');
$('input[type="radio"]').attr('checked', false);
})
});
我创建了一个 fiddle http://jsfiddle.net/8jKJc/220/
但它不适用于 Bootstrap
【问题讨论】:
标签:
jquery
html
twitter-bootstrap
radio-button
unchecked
【解决方案1】:
使用.prop 代替.attr:
$('input[type="radio"]').prop('checked', false);
[Demo]
【解决方案2】:
使用这个:
$(this).prop('checked', false);
//$('input[type="radio"]').attr('checked', false);
您可以查看此 link 来区分 .prop() 和 .attr()。 .attr() 适用于访问 HTML 元素属性,如(name, id, class,etc..) 和 .prop() 用于在大多数情况下返回布尔值的 DOM 元素属性。
来自jQuery官方页面:
例如,应使用 .prop() 方法检索和设置 selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked 和 defaultSelected。在 jQuery 1.6 之前,可以使用 .attr() 方法检索这些属性,但这不在 attr 的范围内。这些没有对应的属性,只是属性。
【解决方案3】:
使用 .prop() 内置函数。
$('input[type="radio"]').prop('checked', false);
【解决方案4】:
它很容易使用以下将帮助你:
$("input:checked").removeAttr("checked");
检查您更新的Fiddle Here
【解决方案5】:
如果你使用 jQuery > 1.5,你应该使用prop 而不是attr。
$('input[type="radio"]').prop('checked', false);
演示here.
详情请见here。
【解决方案6】:
.prop 只设置属性,不设置属性。
jQuery API
或者您可以使用is 来执行此操作
$("#btn").click(function(){
$("input[type='radio']").each(function() {
if($(this).is(':checked')){
$(this).prop('checked',false);
}
});
});