下面的函数总是返回false,我想我知道为什么,但不知道如何解决它。它验证的无线电形式是使用循环生成的,我将每个无线电场的ID设置为“myfilling”,我认为这就是我出错的地方。
功能是:
if(!document.getElementById('myfilling').checked) {
var resultloc=document.getElementById("fillingerror");
resultloc.innerHTML = "<span style='color:red;'>Please select a filling!<span>";
return false;
} else {
var resultloc=document.getElementById("fillingerror");
resultloc.innerHTML = "";
return true;
}
如果我在字段中选择第一个单选按钮,则没有错误。但是,如果我选择任何其他按钮,则会出现错误。我该如何解决这个问题?
使用以下内容生成无线电字段:
function make_filling_radio($filling)
{
$filling = array("Carne de Casa (shredded beef)", "Carnitas (shredded pork)", "Pulled BBQ Chicken", "Roasted Chili Lime Chicken", "Roasted Veggies");
foreach ($filling as $value){
if (!empty($filling) and (FALSE !== array_search($value, $filling)))
echo "<input type=\"radio\" name=\"filling\" value=\"$value\" id='myfilling'> $value<br>\n";
else
echo "<input type=\"radio\" name=\"filling\" value=\"$value\" id='myfilling'> $value<br>\n";
}
}
答案 0 :(得分:0)
要使用纯js解决此问题,您可以使用input
循环遍历所有getElementsByName
标记(而不是使用getElementById
,因为您的ID不是唯一的):
var input_elements = document.getElementsByName("filling");
for (var i=0; i < input_elements.length; i++) {
if (elements[i].checked) {
//checked radio found
return true;
}
}
//...
return false;