如何在jQuery中重置单选按钮,以便不选中任何单选按钮

如何在jQuery中重置单选按钮,以便不选中任何单选按钮,jquery,forms,Jquery,Forms,我有如下HTML单选按钮: <td> <input id="radio1" type="radio" name="correctAnswer" value="1">1</input> <input id="radio2" type="radio" name="correctAnswer" value="2">2</input> <input id="radio3" type="radio" name="co

我有如下HTML单选按钮:

<td>
    <input id="radio1" type="radio" name="correctAnswer" value="1">1</input>
    <input id="radio2" type="radio" name="correctAnswer" value="2">2</input>
    <input id="radio3" type="radio" name="correctAnswer" value="3">3</input>
    <input id="radio4" type="radio" name="correctAnswer" value="4">4</input>
</td>
我在IE 6中执行此操作。

为什么不执行以下操作:

$("#radio1, #radio2, #radio3, #radio4").checked = false;

在jQuery 1.6之前的版本中,请使用:

$('input[name="correctAnswer"]').attr('checked', false);
在1.6之后的jQuery版本中,应使用:

$('input[name="correctAnswer"]').prop('checked', false);
但是,如果您使用的是1.6.1+,则可以使用第一种形式(参见下面的注释2)

注1:第二个参数必须是false而不是“false”,因为“false”不是假值。i、 e

if ("false") {
    alert("Truthy value. You will see an alert");
}
注2:从jQuery 1.6.0开始,现在有两种类似的方法,
.attr
.prop
,它们做两件相关但略有不同的事情。如果在这种特殊情况下,如果使用1.6.1+,则上述建议有效。上述内容不适用于1.6.0,如果您使用的是1.6.0,则应升级。如果你想了解细节,请继续阅读

详细信息:在使用纯HTML DOM元素时,DOM元素会附加一些属性(
已选中、
类型
等),这些属性为HTML页面的运行状态提供了一个接口。还有
.getAttribute
/
.setAttribute
接口,该接口提供对HTML中提供的HTML属性值的访问。在1.6版本之前,jQuery提供了一种方法,
.attr
,用于访问这两种类型的值,从而模糊了两者之间的区别。jQuery1.6+提供了两种方法,
.attr
.prop
来区分这些情况


.prop
允许您设置DOM元素的属性,而
.attr
允许您设置HTML属性值。如果使用普通DOM并将checked属性
elem.checked
设置为
true
false
,则会更改运行值(用户看到的内容),返回的值跟踪页面状态
elem.getAttribute('checked')
但是只返回初始状态(并根据HTML中的初始状态返回
'checked'
undefined
)。在1.6.1+中,使用
.attr('checked',false)
可以同时执行
elem.removeAttribute('checked')
elem.checked=false
,因为更改会导致很多向后兼容性问题,并且无法真正判断您是想要设置HTML属性还是DOM属性。有关详细信息,请参见。

您的问题是属性选择器不是以
@
开头的

试试这个:

$('input[name="correctAnswer"]').attr('checked', false);

通过jquery检查的单选按钮集:

<div id="somediv" >
 <input type="radio" name="enddate" value="1"  />
 <input type="radio" name="enddate" value="2"  />
 <input type="radio" name="enddate" value="3"  />
</div>

在jquery中设置单选按钮状态的最佳方法:

HTML:

在Jquery 1.6+代码中,首选.prop()方法:

var presetValue = "black";
$("[name=color]").filter("[value='"+presetValue+"']").prop("checked",true);
要取消选择按钮,请执行以下操作:

$("[name=color]").removeAttr("checked");

最后经过大量的测试,我认为最方便、最有效的预置方式是:

var presetValue = "black";
$("input[name=correctAnswer]").filter("[value=" + presetValue + "]").prop("checked",true);
$("input[name=correctAnswer]").button( "refresh" );//JQuery UI only
JQueryUI对象需要刷新

检索值很容易:

alert($('input[name=correctAnswer]:checked').val())
使用jQuery1.6.1和jQueryUI1.8进行测试。

其中有:

在value=“1”之后,您也可以只添加
未选中的=“false”/>

然后,线路将是:

<input type="radio" name="enddate" value="1" unchecked =" false" />

将所有单选按钮设置回默认值:

$("input[name='correctAnswer']").checkboxradio( "refresh" );

如果要清除DOM中的所有单选按钮:

$('input[type=radio]').prop('checked',false)


条形图
饼图
数据点图
$(“#无线电输入”).removeAttr('checked');
//刷新jQuery UI按钮集。
$(“#收音机”).buttonset(‘刷新’);

我知道这是一个老问题,这有点离题,但假设您只想取消选中集合中的特定单选按钮:

$(“#go”)。单击(函数(){
$(“输入[name='correctAnswer']”)。每个(函数(){
如果($(this.val()!=“1”){
$(this).prop(“选中”,false);
}
});
});

1.
2.
3.
4.

虽然prop更改了选中状态,但更改也显示在表单中

$('input[name="correctAnswer"]').prop('checked', false).change();

您不能只在从jQuery调用返回的数组上设置checked属性,必须使用attr()函数在数组中的项上设置该属性。这并不能使“未选中”成为“未选中”。对于第二个参数,传递false而不是“false”很重要因为第二个参数很重要,因为第二个参数是要设置的值。如果第二个参数为空,则表示为我提供与选择器匹配的第一个元素的值。@Noldorin-“Truthy”是一个非常复杂的词。(你能建议一种更好的表达“真实”概念的方式吗?只用一个词?)嘿,也许很公平。我们都可能明白这一点,尽管我个人更喜欢更正式的“真实”或“语义真实”。@Noldorin“Truthy”和“falsy”是许多Javascript专家使用的术语,包括和。关键术语是falsy,因为。Truthy是falsy对立面的逻辑名称。我认为使用falsy是故意让你觉得这可能不是你所习惯的(特别是如果来自其他C风格语法语言,0为false)。如果@lamback的答案对你不起作用,请查看JQuery网站上的bug跟踪器[。如果你是(就像我一样…)循环通过一组单选按钮尝试将它们全部重置为默认值,
#(选择器).prop('checked',true)当尝试将同一组中的后续单选按钮设置为未选中状态时,
失败。诀窍是仅将单选按钮设置为选中状态,并让单选按钮组执行其操作(取消选中其他…。此外,调用
$(选择器)。单击();
工作,并将触发任何关联事件。嘿,我认为您的答案不完整。函数checkboxradio()未在jQuery 2.x中定义。这是您使用的扩展吗?
var presetValue = "black";
$("input[name=correctAnswer]").filter("[value=" + presetValue + "]").prop("checked",true);
$("input[name=correctAnswer]").button( "refresh" );//JQuery UI only
alert($('input[name=correctAnswer]:checked').val())
<input type="radio" name="enddate" value="1" unchecked =" false" />
$("input[name='correctAnswer']").checkboxradio( "refresh" );
<div id="radio">
<input type="radio" id="radio1" name="radio"/><label for="radio1">Bar Chart</label>
<input type="radio" id="radio2" name="radio"/><label for="radio2">Pie Chart</label>
<input type="radio" id="radio3" name="radio"/><label for="radio3">Datapoint Chart</label>
</div>

$('#radio input').removeAttr('checked');
// Refresh the jQuery UI buttonset.                  
$( "#radio" ).buttonset('refresh');
$('input[name="correctAnswer"]').prop('checked', false).change();