我正在尝试使用jQuery获取radiobutton的检查状态而没有太多运气。
我的HTML看起来像:
<div class="fr">
<label>
Recieve Email Updates?</label>
Yes
<input type="radio" value="True" name="ConsumerModel.RecieveSMS" id="ConsumerModel_RecieveSMS" data-val-required="The RecieveSMS field is required." data-val="true">
No
<input type="radio" value="False" name="ConsumerModel.RecieveSMS" id="ConsumerModel_RecieveSMS" checked="checked">
</div>
<div class="fr">
<label>
Recieve Email Updates?</label>
Yes
<input type="radio" value="True" name="ConsumerModel.RecieveEmail" id="ConsumerModel_RecieveEmail" data-val-required="The RecieveEmail field is required." data-val="true" checked="checked">
No
<input type="radio" value="False" name="ConsumerModel.RecieveEmail" id="ConsumerModel_RecieveEmail">
</div>
我的jQuery看起来像:
var sms= $('input[name=ConsumerModel.RecieveSMS]:checked').val();
var email = $('input[name=ConsumerModel.RecieveEmail]:checked').val();
我的变量sms
似乎没问题但是电子邮件始终与sms
相同,即使2不同。
我做错了什么?
答案 0 :(得分:5)
因为您的代码没有唯一的名称/ ID。
检查live sample。
基本上$("input[name=...]:checked")
会返回两个元素而不是一个元素。
<div class="fr">
<label>
Recieve Email Updates?</label>
Yes
<input type="radio" value="True" name="ConsumerModel.RecieveSMS" class="ConsumerModel_RecieveSMS" data-val-required="The RecieveSMS field is required." data-val="true">
No
<input type="radio" value="False" name="ConsumerModel.RecieveSMS" class="ConsumerModel_RecieveSMS" checked="checked">
</div>
<div class="fr">
<label>
Recieve Email Updates?</label>
Yes
<input type="radio" value="True" name="ConsumerModel.RecieveEmail" class="ConsumerModel_RecieveEmail" data-val-required="The RecieveEmail field is required." data-val="true" checked="checked">
No
<input type="radio" value="False" name="ConsumerModel.RecieveEmail" class="ConsumerModel_RecieveEmail">
</div>
如果您将id
更改为不需要唯一的class
,那么它就可以正常工作。
答案 1 :(得分:0)
$('input:radio').is('checked');