var button=document.getElementsByName("d1");
var p=document.getElementById("a3");
for(var i=0;i<button.length;i++)
{
if(button[i].checked==false)
{

p.value="请选择性别";
return false;

}else
{

p.value="";

return true;
}

} <td><input type="radio" name="d1"  value="男" />
      男
      <input type="radio" name="d1"  value="女" />
      女
     
         <input type="text" name="name" id="a3"  class="a1"/>
      </td>这个只有选择男的时候可以提交表单选择女的时候不可以提示需要选中
帮看一下是哪的逻辑错误

解决方案 »

  1.   

    return false引起的。。我现在头晕好不容易想到了。。return false 会停止判断
      

  2.   

    return false 会阻止循环当你选择女的时候。。只判断了男为没有选。。然后就跳出循环了。。
      

  3.   

    在一个form里表单,如果多个type="radio"的input , name相同时,它只能被选中一个,
    也就是说,如果是两个相同name的radio,你只需要判断第一个是否选中就OK了
      

  4.   

     for (var i = 0; i < button.length; i++) {
                    if (button[i].checked == false) {
                       
                        p.value = "请选择性别";
                        
                    }
                    else {
                        
                        p.value = "";                    return true;
                    }            }
                return false;        }
    在for 外面加个return false;
    里面那个去掉。。再试下
      

  5.   

    这个可以:
    var button=document.getElementsByName("d1");
    var p=document.getElementById("a3");
    var flag = false;
    for(var i=0;i<button.length;i++)
    {
    if(button[i].checked)
    {
    flag = true;
    p.value="";
    };
    }
    if(!flag)
    {
    p.value="请选择性别";
    return false;
    }
      

  6.   


    //嗯 是逻辑问题 下面已解决
    function read()
    {
    var reValue=false;
    var button=document.getElementsByName("d1");
    var p=document.getElementById("a3");
    for(var i=0;i<button.length;i++)
    {
    if(button[i].checked==true){reValue = true;break;}
    }
    if(reValue){p.value="";return reValue;}else{p.value="请选择性别";return reValue;}
    }