我在Jquery Mobile中有这个字段集:
<div data-role="main" class="ui-content">
<fieldset data-role="controlgroup">
<legend>Highest education:</legend>
<label for="uni">University</label>
<input type="radio" name="gender" id="uni" value="uni">
<label for="coll">College</label>
<input type="radio" name="gender" id="coll" value="coll">
</fieldset>
</div>
我想将值存储在变量education
中,并检查是否至少检查了一个radiobutton。由于我有更多这样的选择并多次使用它,我考虑使用this
而不是手动赋值给变量。但是,下面的代码不起作用。
有人可以帮我这个吗?
if($("#uni").is(":checked") || $("#coll").is(":checked")) {
edu = $(this).val();
} else {
return false
}
答案 0 :(得分:1)
鉴于澄清,在您的问题的评论中,您想要检查每个组中是否已检查过收音机<input>
,我建议:
// selects all the relevant fieldsets (on the assumption they all
// share the same 'data-role' attribute and value:
var fieldsets = $('fieldset[data-role="controlgroup"]'),
// compares the number of fieldsets with the number of fieldsets that have...
allChecked = fieldsets.length === fieldsets.filter(function(){
// one, or more, checked radio inputs:
return $(this).find('input[type="radio"]:checked').length;
// and assesses whether the number of fieldsets is the same as the
// number of fieldsets with at least one radio input checked
}).length;
参考文献: