onChange="selectca('this')">这样传的参数的就是字符串“this”了

解决方案 »

  1.   

     <select name="test" onChange="selectca(this)">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
    </select>
    <select name="test" onChange="selectca(this)">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
    </select>
    <select name="test" onChange="selectca(this)">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
    </select>
    <select name="test" onChange="selectca(this)">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
    </select>
    <br>
    <span id=sp1> </span><script language=javascript>function selectca(obj)
    { var sel = document.getElementsByTagName("select");
    var n = 0;
    for(var i=0;i<sel.length-1;i++)
    {
    for(var j=1;j<sel.length;j++)
    {
    if(i!=j)
    {
    if(sel[i].options[sel[i].selectedIndex].text==sel[j].options[sel[j].selectedIndex].text)
    n++;
    }
    }

    }

    sp1.innerText = (n!=0?"有重复值!":"无重复值");
    }
    </script>
      

  2.   

    算法上做点改进:function selectca(obj)
    { var sel = document.getElementsByTagName("select");
    var n = 0;
    for(var i=0;i<sel.length;i++)
    {
    for(var j=0;i!=j&&j<sel.length;j++)
    {

    if(sel[i].options[sel[i].selectedIndex].text==sel[j].options[sel[j].selectedIndex].text)
    n++;
    }

    }

    sp1.innerText = (n!=0?"有重复值!":"无重复值");
    }