<script language="javascript">
<!--
for(i=0;i<form1.elements.length;i++)
  for(j=i+1;j<form1.elements.length;j++)
  if(form1.elements[i].value==form1.elements[j].value)
  alert("存在相等的值")
//-->
</script>

解决方案 »

  1.   

    TO annkie:我也是用的这种方式,只是觉得他要循环的次数比较多。
    我原来想先将这些值排序一下,再将当前值与下一个比较就好了,不知道行不行?
      

  2.   

    排序花的时间更长。
    有一个相同就中止循环:
    <script language="javascript">
    function checkEqual(){
     for(i=0;i<form1.elements.length;i++)
      for(j=i+1;j<form1.elements.length;j++)
      if(form1.elements[i].value==form1.elements[j].value)
      {alert("存在相等的值"); return true;}
     return false;
    }
    checkEqual();
    </script>
      

  3.   

    对了,有一个前提是我已经将这些值变成一个数组了 chkitem,(当然也是一个循环^_^)。
    在这个之前检查了他们不能为空,都必须为特定的格式等等(如数字)。现在也已经排序了
    chkitem=chkitem.sort();
      

  4.   

    我只是想让大家指导一下这样好不好:
    for (var i=0;i<chkitem.length-2;i++)if(chkitem[i]==chkitem[i+1])return false;
      

  5.   

    如果排好序了这样就可以判断正确了。
    for (var i=0;i<chkitem.length-2;i++)if(chkitem[i]==chkitem[i+1])return false;
      

  6.   

    错了错了,应该是:
    for (var i=0;i<chkitem.length-1;i++)if(chkitem[i]==chkitem[i+1])return false;