如何使用jQuery重置单选按钮,使其未选中

15 浏览
0 Comments

如何使用jQuery重置单选按钮,使其未选中

我在HTML中有一个单选按钮,像这样:

    1
    2
    3
    4

 

它在一个form标签中,当用户提交表单时,我想让所有单选按钮回到默认状态,也就是没有一个被选中。

我有这段代码,但它报错说[0]为空或不是一个对象

$('input[@name="correctAnswer"]')[0].checked = false;
$('input[@name="correctAnswer"]')[1].checked = false;
$('input[@name="correctAnswer"]')[2].checked = false;
$('input[@name="correctAnswer"]')[3].checked = false;

我在IE 6中进行这个操作。

admin 更改状态以发布 2023年5月22日
0
0 Comments

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

HTML:

 Orange 
 Pink 
 Black
 Pinkish Purple

Jquery(1.4+)代码以预先选定一个按钮:

var presetValue = "black";
$("[name=color]").filter("[value='"+presetValue+"']").attr("checked","checked");

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

var presetValue = "black";
$("[name=color]").filter("[value='"+presetValue+"']").prop("checked",true);

取消选定按钮:

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

0
0 Comments

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

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

在jQuery 1.6之后的版本中,您应该使用:

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

但如果您使用1.6.1+,则可以使用第一种形式(见下面的注释2)。

注释1:第二个参数重要的是使用false而不是"false",因为"false"不是一个假值。例如:

if ("false") {
    alert("Truthy value. You will see an alert");
}

注释2:自jQuery 1.6.0以来,现在有两个类似的方法,.attr.prop可以做两件相关但稍微不同的事情。在这种特定情况下,如果您使用1.6.1+,则上面提供的建议可以正常使用。如果您使用1.6.0,则不起作用,您应该升级。如果您想要了解详情,请继续阅读。

详细信息:在使用直接的HTML DOM元素时,有属性附加到DOM元素(checkedtypevalue等),这些属性提供了一个接口来运行HTML页面。还有.getAttribute/.setAttribute 接口,它提供对HTML属性值的访问,这些值是在HTML中提供的。在jQuery 1.6之前,jQuery通过提供一个方法,.attr 来访问这两种类型的值,这使得两者之间的区别变得模糊。而jQuery 1.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属性。在.prop的文档中查看更多信息。

0