我分开测试的,其他的代码都可以,问题应该在这个区域里:
// 将select中的所有option的value值将保存在Array中
  for (var i = 0; i < ln; i++)
 {
  arr[i] = Sel.options[i].value; 
  if (arr[i].indexOf(xin)=0)
   //返回在主串中第一个跟子串匹配的字符串的第一个字符的位置;如果没有则返回-1
  arr2[arr2.length]=arr[i] ;
  //alert(arr[i]);
  }

解决方案 »

  1.   

    都贴上是供调试用的,就光看这一部分就可以了
    for (var i = 0; i < ln; i++)
     {
      arr[i] = Sel.options[i].value; 
      if (arr[i].indexOf(xin)=0)
       arr2[arr2.length]=arr[i] ;
      }
      

  2.   

    catch_press()这个函数里找到4处错误
    Sel应该是sel,Js是大小写敏感的(3处)
    if (arr[i].indexOf(xin)=0)里面应该用==,而不是=修改上面四个语法错误以后,输入“毛”后下拉单就被置空了
      

  3.   

    select 能允许输入吗?是不是另外用个input捕捉用户的输入
      

  4.   

    larger102(骆驼) 厉害,非常感谢!
    请问明明有对下拉框重新赋值的语句,为什么没有执行呢??
    // 将数组重新添加到Select中  for (i = 0; i < arr2.length; i++)
      {
      Sel.add (new Option(arr2[i], arr2[i]));
      }
      

  5.   

    找到了arr[i] = Sel.options[i].value---》text