检查单选按钮是否被按下

时间:2012-11-28 09:09:19

标签: php javascript checkbox

我有一个带有foreach循环的表单,在循环内部我有一个输入类型的无线电,所以每次它有一个新的值,如下面的代码:

<?php
            $aircrafts = AircraftPermit::getaircraft();
            foreach($aircrafts as $aircraft)
                {
                    $pacas = AircraftPermit::getrouteaircraft($aircraft->name ,$pilotid);
                    if($pacas)
                        {
            ?>
                            <tr>
                                <td>
                                    <input type="radio" id="ac" value="" disabled="disabled"><?php echo $aircraft->name ;?><br />
                                </td>
                                <td align="center">
                                    <input name="submit" title="Give permission to selected aircraft" type="submit" value="Give Permit" disabled="disabled">
                                </td>
                                <td align="center">
                                    <font color="green">Granted</font>
                                </td>
                            </tr>
            <?php
                        }
                    else
                        {
            ?>
                            <tr>
                                <td>
                                    <input type="radio" id="ac" value="<?php echo $aircraft->name ;?>"><?php echo $aircraft->name ;?><br />
                                </td>
                                <td align="center">
                                    <input name="id" type="hidden" value="<?php echo $pilotid ;?>">
                                    <input name="submit" title="Give permission to selected aircraft" type="submit" value="Give Permit">
                                </td>
                                <td align="center">
                                    <font color="red">Restricted</font>
                                </td>
                            </tr>
            <?php
                        }
                }
            ?>

现在最后我有一个脚本来检查单选按钮是否如下所示:

<script type="text/javascript">
function radio_is_on() {
    var elementId = document.getElementById('ac');
    if (elementId.checked==false)
    {
        alert('Please select the aircraft first!');
        return false;
    }
    if (elementId.value)
    {
        return true;
    }
}
</script>

当没有按下单选按钮时,消息弹出正常,但是当它被按下时,它不返回任何值,表单发送空值。请告诉我我哪里错了。 感谢

3 个答案:

答案 0 :(得分:0)

所有单选按钮都有相同的ID - 这是不正确的。 并且始终只考虑一个按钮。 你可以为它们编号,例如。 ac1,ac2等。

答案 1 :(得分:0)

你不能有多个id标签,这可能就是它无法正常工作的原因。尝试将其更改为类。请参阅下面的例子,例如jquery。

HTML:

<input type="radio" class="ac" value="<?php echo $aircraft->name ;?>"><?php echo $aircraft->name ;?><br />

JAVASCRIPT:

function radio_is_on() {
  if ($('.ac:checked').val()) {
    return true;
  }
  else {
    alert('Please select the aircraft first!');
    return false;
  }
}

答案 2 :(得分:0)

据我所知,单选按钮在具有checked属性时被“推”,并且在没有它时不会被按下。

...
    if (elementId.hasOwnProperty('checked'))
...

而不是

...
    if (elementId.checked==false)
...
相关问题