0

下面的函数总是返回 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";
    }
}
4

1 回答 1

0

要使用纯 js 解决此问题,您可以使用(而不是使用,因为您的 id 不是唯一的)遍历所有input标签:getElementsByNamegetElementById

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;
于 2013-04-10T20:11:48.427 回答