1

各質問に次のようなラジオボタンのグループがあるクイズを作成しています。

<input type="radio" name="quid16" value="answid53" />Answer 1 : foo
<input type="radio" name="quid16" value="answid54" />Answer 2 : bar
<input type="radio" name="quid16" value="answid55" />Answer 3 : joe
<input type="radio" name="quid16" value="answid56" />Answer 4 : blogs

quid16各グループは、上記のようなIDを取得します。このIDはPHPによって生成され、修正されていません。

フォームの送信を検証するとき、すべてのグループに1つのチェックされたラジオボタンがあるかどうかを確認する必要があります。

問題は、事前にグループIDがわからないことです。この問題をどのように解決しますか?

4

3 に答える 3

7

「quid」で始まり、次のようにすべてのラジオボックスを使用できます。

  1. 一意の名前をフィルタリングする
  2. チェックされた値をフィルタリングします
  3. 1.と2を比較します。

コード:

var radios = $('[name^=quid]'),
names = $.unique(radios.map(function() {
    return this.name;
})),
checked = radios.filter(function() {
    return this.checked;
});

if (names.length == checked.length) {
    alert('all answers are checked');
}
于 2013-02-18T23:56:10.057 に答える
0

属性StartsWithSelectorを使用して、接頭辞'quid'の要素を取得し、jQuery.isを使用して。である要素を選択します:checked。例えば:

$('[name^=quid]').is(':checked'); //Returns true if any radio buttons are 'checked'

JSFiddleの例を次に示します。http://jsfiddle.net/SDXSf/

<input type="radio" name="quid16" value="answid53" />Answer 1 : foo <br/>
<input type="radio" name="quid16" value="answid54" />Answer 2 : bar <br/>
<input type="radio" name="quid16" value="answid55" />Answer 3 : joe <br/>
<input type="radio" name="quid16" value="answid56" />Answer 4 : blogs <br/>
<br/>
<button>Test</button>
<script type="javascript">
    $(function(){

    function isOneChecked(selector)
    {
       return $(selector).is(':checked')
    }

    $('button').click(function(){
        alert(isOneChecked('[name^=quid]') ? 'Validated' : 'Please select a radio    button');
    });
});
</script>
于 2013-02-19T00:09:40.087 に答える
-1
if ($('input:radio').is(':checked')) {function()} else {function()}
于 2013-02-19T00:03:17.287 に答える