【问题标题】:Check if the radio button is pushed检查单选按钮是否被按下
【发布时间】:2012-11-28 09:09:19
【问题描述】:

我有一个带有 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>

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

【问题讨论】:

    标签: php javascript checkbox


    【解决方案1】:

    您不能有多个 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】:

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

    【讨论】:

      【解决方案3】:

      据我所知,单选按钮在具有选中属性时被“推送”,而在没有该属性时不会被推送。

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

      而不是

      ... if (elementId.checked==false) ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-06
        • 2014-04-23
        • 1970-01-01
        • 2020-01-02
        • 2011-05-11
        • 1970-01-01
        • 2016-01-11
        相关资源
        最近更新 更多