我试图使用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>
Run Code Online (Sandbox Code Playgroud)
我的jQuery看起来像:
var sms= $('input[name=ConsumerModel.RecieveSMS]:checked').val();
var email = $('input[name=ConsumerModel.RecieveEmail]:checked').val();
Run Code Online (Sandbox Code Playgroud)
我的变量sms似乎没问题,但sms即使2不同,电子邮件总是一样的.
我究竟做错了什么?
因为您没有唯一的名称/ ID代码中断.
检查实时样本.
基本上$("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>
Run Code Online (Sandbox Code Playgroud)
如果您id将a 更改为class不需要唯一的那么它可以工作.