我有一个带有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>
当没有按下单选按钮时,消息弹出正常,但是当它被按下时,它不返回任何值,表单发送空值。请告诉我我哪里错了。 感谢
答案 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) ...