我有以下单选按钮:
<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());
由于
答案 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]")
这样,您选择一个元素(包含表单/其他容器),并在其中查找正确的无线电输入。