jQuery给我任何选定的单选按钮的值相同?

时间:2011-10-16 20:43:45

标签: jquery button radio

我有以下单选按钮:

<fieldset data-role="controlgroup" data-type="horizontal">
<legend>Business Type</legend>
<input type="radio" name="businessType" value="business" id="business" checked="checked"/>
<label for="business">Business</label>
<input type="radio" name="businessType" value="personal" id="personal"/>
<label for="personal">Personal</label>
</fieldset>

我尝试使用这个jQuery来获取所选单选按钮的当前值,但即使我选择个人,我也会继续将'Business'作为值:

var idd = ($("input:radio[name=businessType]").val());

由于

2 个答案:

答案 0 :(得分:11)

根据docs,你需要这样做:

var idd = ($("input:radio[name=businessType]:checked").val());

答案 1 :(得分:2)

当然它会一直回归“商业”。 $("input:radio[name=businessType]")为您提供了具有特定名称的所有单选按钮,而不仅仅是所选的单选按钮,.val返回第一个的值 - 在本例中为“Business”。

您需要将所选元素缩小到仅一个 - 所选元素。有一种简单的方法可以做到这一点:

$("input:radio[name=businessType]").filter(":checked").val();

<小时/> 作为旁注,你的选择器非常糟糕。您正在选择每个输入框,然后将其过滤掉。我建议这样的事情:

$(containingForm).find("input:radio[name=businessType]")

这样,您选择一个元素(包含表单/其他容器),并在其中查找正确的无线电输入。