<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body>
<input type=button value=test onclick="testFun()">
<table>
<tr>
<td><input type=checkbox name=aaa ></td>
<td><input name=bbb ></td>
</tr><tr>
<td><input type=checkbox name=aaa ></td>
<td><input name=bbb ></td>
</tr><tr>
<td><input type=checkbox name=aaa ></td>
<td><input name=bbb ></td>
</tr></table>
</body></html>
<script>
function testFun()
{
var a= document.getElementsByName("aaa");
var num=0;
for(var i=0;i<a.length;i++)
{
if(a[i].checked)
{
num++;
if(a[i].parentElement.parentElement.all.bbb.value=="")
{
   alert("Please input!");
   a[i].parentElement.parentElement.all.bbb.focus();
   return false;
  
   }
}}
if(num==0)
alert("Please select");}
</script>

解决方案 »

  1.   

    <script language="JavaScript">
        function formCheck()
    {
    var checkid = document.getElementsByName("checkbox");
                      var textfield = document.getElementsByName("textfield");
                       for(var j=1;j<=checkid.length;j++)
    {
    if(checkid[j].checked == true)
    {
    if(textfield[j].value=="")
    {
    alert("请在所选复选框后面的文本框里面输入东西!");
    return false;
    }

    }

    }
    }
    </script>
      

  2.   

    j从1开始了.没有捕捉第一个CheckBox和Text元素
      

  3.   

    同名的input字段,返回的值是什么样子的呀
      

  4.   

    回复人: gjd111686(数字金刚) ( ) 信誉:99 --------------
    果然是。:)
      

  5.   

    我按照ice_berg16(寻梦的稻草人)的方法,已经成功。
    但为什么我加了一个else过后就又什么反应都没有了?
    <script language="JavaScript">
        function formCheck()
    {
    var checkid = document.getElementsByName("checkbox");
                      var textfield = document.getElementsByName("textfield");
                       for(var j=1;j<=checkid.length;j++)
    {
    if(checkid[j].checked == true)
    {
    if(textfield[j].value=="")
    {
    alert("请在所选复选框后面的文本框里面输入东西!");
    return false;
    }
           //这里                          else 

    alert("已经输入!");

    return false;


    }

    }
    }
    </script>