将此方法用于radiobuttons的值

时间:2014-10-11 17:16:02

标签: jquery jquery-mobile this

我在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
    }

1 个答案:

答案 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;

参考文献: