jQuery: 为什么编程方式选择单选按钮不起作用?

28 浏览
0 Comments

jQuery: 为什么编程方式选择单选按钮不起作用?

我的任务非常简单:给定一组4个单选按钮,我需要在单击图像时以编程方式选择其中一个。就是这么简单。

现在我有这些单选按钮:





以下的jQuery代码就像魔法一样工作-当从图像的click()函数中调用时:

$('input[name="answer"]').filter("[value='A']").attr("checked", true);

也就是说,第一个单选按钮被选择,大家都很开心。但是,一旦我将相同的代码行放在同一页上的另一个图像的click()函数中 - 它突然停止工作了!当我点击另一个图像时,我可以看到 - 仅仅一瞬间!- 正确的单选按钮被选择,然后立即清除!显然,除了图像的click()函数中的这一行代码之外,没有其他代码操作这些单选按钮。

请拯救我的理智 - 有人能解释给我,这到底是怎么可能的吗?更重要的是,如何修复这个问题?

0
0 Comments

问题的原因是在 jQuery 2.0.0 版本和使用的浏览器(IE和Chrome)中,使用 .attr 方法不能正常设置单选按钮的选中状态,但是可以使用 .prop 方法来实现:

$("#someControlNameOrFilter").prop("checked", true);

解决方法就是使用 .prop 方法来设置单选按钮的选中状态。

0
0 Comments

问题出现的原因是代码在某些情况下无法通过jQuery来选择单选按钮。

解决方法是使用.prop()方法来设置单选按钮的选中状态。

0