我在揭示单选按钮的实际结果时遇到问题。我使用javascript从单选按钮获取值,无论如何都成功,但是当我创建一个if值的条件时! =“是”警报出现为什么仍然“OK”,我想选择是否“否”意味着应该出现的警告是“不好”。
这是表格:
<form id="form_test" name="form_test" method="POST">
<input type="hidden" id="menu_id" name="menu_id" value="<?=$menu_id?>">
<table align='center' width='auto' class='table1' cellpadding='5' cellspacing="0">
<tr>
<td align='center' class='tabletitle'>No</td>
<td align='center' class='tabletitle'>PC</td>
<td align='center' class='tabletitle'>PN</td>
<td align='center' class='tabletitle'>PCO</td>
<td align='center' class='tabletitle'>GC</td>
<td align='center' class='tabletitle'>CUR</td>
<td align='center' class='tabletitle'>Codes</td>";
<td align='center' class='tabletitle'>Percent</td>";
<td align='center' width='5%' class='tabletitle'>Yes</td>";
<td align='center' width='5%' class='tabletitle'>No</td>";
</tr>
[call to database]
$num++;
echo " <tr>
<td class='tablecontent' align='center' valign='top'>$num</td>
<td class='tablecontent' valign='top'>$pc</td>
<td class='tablecontent' valign='top' nowrap>$pn</td>
<td class='tablecontent' align='center' valign='top'>$pco</td>
<td align='center' class='tablecontent' align='center' valign='top'>$gc</td>
<td class='tablecontent' align='center' valign='top'>$cur</td>
<td class='tablecontent2' valign='top'>$codes</td>";
<td align='center' class='tablecontent' valign='top'>$percent</td>";
<td align='center' class='tablecontent' valign='top'><input type='radio' id='yes' name='cek$num' value='yes' checked></td>";
<td align='center' class='tablecontent' valign='top'><input type='radio' id='no' name='cek$num' value='no' ></td>";
</tr>";
echo "
<tr>
<td><input type='button' name='accept' value='accept' onclick='getaccept()'></td>";
</tr>";
echo "</table>";
echo "<input type='hidden' id='jmlcek' name='jmlcek' value='$num'>";
echo "</form>";
然后这是获取价值的Javascript代码:
<script language="Javascript">
function getaccept(){
//var str = '';
var elem = document.getElementById('form_test').elements;
var c = confirm("Yakin mau nerima?");
for (var i = 1; i <= elem.length; i++)
{
var e = elem[i].value
if (elem[i].type == "radio" && c)
{
if (e != "yes" && elem[i].checked){
alert('NOT OKE');
return false;
}else{
alert('OKE');
return true;
}
}
}
}
</script>
例如,实际上是三个并且全部被选为“是”的数据量,当我在其中一个现有数字上选择“否”时,它将显示警告“NOT OKE”,但实际上当我选择“否”时“我得到的价值是”是“并警告”OKE“。
我已多次尝试使它们正确,但结果仍然是错误的,所以有什么不对?
感谢。
答案 0 :(得分:1)
这就是我得到的:
function getApprove(){
//var elem = document.getElementById('form_test').elements;
var RadioButton = document.getElementsByTagName('input');
var Approve = confirm("Are you sure?");
for (var i = 0; i < RadioButton.length; i++)
{
if (RadioButton[i].type == "radio" && Approve)
{
if(RadioButton[i].checked && RadioButton[i].value != "yes"){
alert("NOT OKE");
return false;
}
}
}
for (var i = 0; i < RadioButton.length; i++)
{
if (RadioButton[i].type == "radio" && Approve)
{
if(RadioButton[i].checked && RadioButton[i].value == "yes"){
alert("OKE");
return true;
}
}
}
=&GT;的解决强>&LT =
非常感谢 p.campbell ,因为你关心并帮助我(_ _)m:)
答案 1 :(得分:0)
这里发生的事情是您只评估FIRST单选按钮,因为您在return
的这两个条件中都有(e != "yes" && elem[i].checked)
声明。它正在退出该功能。
删除警报附近的return
语句。他们退出函数,不允许循环迭代表单元素。