对单选按钮进行验证

Validation on radio button

本文关键字:验证 单选按钮      更新时间:2023-09-26

我的验证只适用于一个单选按钮和所有的左侧单选按钮它不起作用这是我的代码

    <script>
function xyz()
{
var x = document.getElementsByName("red");
//alert(x.length);
   for (var i=0; i<x.length; i++)
    {
        if (x[i].checked) {
        return true;
    }else{
    alert("fe");
    return false;
    }
  }
}
</script>
<form name="as" method="post" action="n.php">
<input type="radio" id="x1"   name="red">
<input type="radio"  id="x2"   name="red">
<input type="radio"   id="x3"  name="red">
<input type="radio"   id="x4"  name="red">
<input type="submit" value="button" onclick="return xyz()">
</form>

你应该试试这个

function xyz()
{
    var x = document.getElementsByName("red");
    for (var i=0; i<x.length; i++)
    {
        if (x[i].checked) {
            return true;
        }
    }
    // No radio button checked, return false.
    return false;
}

您的函数将在第一次运行后以两种状态返回。要跳到迭代的下一个元素,应该使用continue而不是return。参见:http://www.w3schools.com/js/js_break.asp。要迭代抛出所有元素,您应该这样做:

for (var i=0; i<x.length; i++) {
    if (x[i].checked) {
        // Do something if checked
    } else {
        // Do something if not checked
        alert("fe");
    }
    // Continue to next element
}

尝试以下代码:

<script type="text/javascript">
function validate()
{
var checked = null;
var inputs = document.getElementsByName('correct');
for (var i = 0; i < inputs.length; i++) 
{
      if (inputs[i].checked) {
       checked = inputs[i];
   }
}
if(checked==null)
{
    alert('Please choose an option');
    return false;
}
else
{
    return confirm('Save As Correct Answer '+checked.value+'');
}
}   
</script>
<form method="post" name="Form" onsubmit="return validate()" action="">
<input type="radio" name="correct" id="correct" value="A">
<input type="radio" name="correct" id="correct" value="B">
</form>