通过jQuery设置单选按钮属性

时间:2014-06-16 21:19:49

标签: jquery

没有提供大量不必要的细节(详情请求)我正在通过以下代码更改选择的单选按钮,假设当点击一个名为“reset radio”的按钮时,执行以下代码:

$("input:radio[name=resetName][value=resetValue]").attr("checked", true);

我们也说:

var resetName = radiobuttons;
var resetValue = radioButton1;
var resetID = radioButton1;

当选择其中一个单选按钮时,我会执行更多代码,并且我正在通过.change()处理程序监听事件。

然而,以下情况会阻塞事物。
1.点击radioButton3
2.通过方便的“重置”按钮将所选值重置为radioButton1 3.再次点击radioButton3

这里发生的是单选按钮在屏幕上重置,但由于我正在使用.change事件处理程序,因此jquery仍然认为radioButton3已被选中,因此它看不到更改。我只能先通过单击另一个单选按钮选择radioButton3,然后单击radioButton3。我该如何解决这个问题,以便jquery看到值和屏幕上的值都在变化?

小提琴:http://jsfiddle.net/h255E/5/

4 个答案:

答案 0 :(得分:0)

您必须考虑使用namevalue选择器

所使用的内容

如果resetNameresetValue是变量,我相信您需要的变量,则需要选择它:

$("input:radio[name='" + resetName + "'][value='" + resetValue + "']").attr("checked", true);

但是,如果你的HTML看起来像这样:

<input type="radio" name="resetName" value="resetValue"/>

然后你的选择器必须是这样的:

$("input:radio[name='resetName'][value='resetValue']").attr("checked", true);

答案 1 :(得分:0)

首先尝试取消选中所有无线电:

$("input:type['radio']").prop("checked", false);

然后检查您想要的那个:

$("input:radio[name="+resetName+"][value="+resetValue+"]").prop("checked", true);

答案 2 :(得分:0)

在重置&#39;

之前,您需要从所有无线电输入中删除checked
function resetValues(resetID, resetName, resetValue) {
    $(".padder input[type='radio']").each(function(){
        $(this).attr("checked",false);
    });
    $("input:radio[name='" + resetName + "][value='" + resetValue + "']").attr("checked", true); //select first radio option in list
    $('#' + resetID).parent().siblings().css("border", "1px solid transparent");
    $('#' + resetID).parent().css("border", "1px solid #ccc");
}

答案 3 :(得分:-2)

这不是attr,它是道具

$("input:radio[name=resetName][value=resetValue]").prop("checked", true);

单击重置按钮会触发单选按钮上的.change()。