Javascript检查单选按钮

时间:2012-08-30 09:02:01

标签: php javascript

我收到了这段代码

    <?php foreach($this->question as $question): ?>
<div class="question">
    <?php echo $question['question'] ?>          </div>


<?php if($this->activeEdition["id"]!=20) { ?>

<div class="answers">
    <?php
    $i = 1;
    foreach($question['answers'] as $answer):
    ?>
    <input type="radio" name="question[<?php echo $question['id'] ?>]" value="<?php echo $answer['id'] ?>" id="<?php echo
           $answer['id']
    ?>" class="radio_answer radio_answer_<?php echo $i; ?>" >
    <label for="<?php echo $answer['id'] ?>"><?php echo $answer['answer'] ?></label>
    <?php
    if(count($question['answers']) > 3){
    echo '<br/>';
    }
    ?>
<?php
$i++;
endforeach;
?>
</div>

如果在每个问题中选中一个单选按钮,如何在javascript中以简单方便的方式检查?

2 个答案:

答案 0 :(得分:0)

如果需要所有答案,则应在生成时将每个答案中的第一个收音机设置为选中。这是最简单的方法。

当然你可以用JS检查它,但它会很难看。这是一个演示代码:

<script>
    function check(){
        var inputs = document.getElementsByTagName('input');
        var names = [];
        var checked = 0;

        for(var i=0;i<inputs.length;i++){
            if(inputs[i].type=='radio'){
                inArray = false;
                for(var j=0;j<names.length;j++){
                    if(names[j]==inputs[i].name){
                        inArray = true;
                        break;
                    }
                }
                if(!inArray){
                    names.push(inputs[i].name);
                }
                if(inputs[i].checked){
                    checked++;
                }
            }
        }

        return names.length==checked;
    }
</script>
<input type="radio" name="a">
<input type="radio" name="a"><br/>
<input type="radio" name="b">
<input type="radio" name="b"><br/>
<input type="radio" name="b">
<input type="radio" name="c">
<input type="radio" name="c"><br/>
<input type="radio" name="d">
<input type="radio" name="d">
<input type="radio" name="d">
<input type="button" onClick="alert(check());">

如果你知道问题的数量,你可以简化它,也许有更好的解决方案来检查in_array。

使用jQuery更好。

答案 1 :(得分:0)

好吧我使用jQuery做了更好的解决方案

<script type="text/javascript">
function checkform()
{
    var ilosc = document.getElementsByClassName('question');
    var n = $("input:checked").length;
    if (n != ilosc.length)
    {
    alert('Proszę zaznaczyć wszyskie odpowiedzi');

    return false;
    }else return true;

}
</script>