<select name="s" onchange='setS(this.value)'>

解决方案 »

  1.   

    最好用value来传递
    document.formName.elements["s"].value = o;
      

  2.   

    可是我就是不想用value才问的
    因为事先并不知道value
      

  3.   

    问题解决:
    <select name="regprovince">
    <option value='1'>北京</option>
    <option value='2'>天津</option>
    <option value='3'>上海</option>
    </select>
    <script language="javascript">
    function setRegProvinceValue(regProvinceString){
    for (var i=0; i<document.all.regprovince.length;i++){
    if (document.all.regprovince.options[i].text == regProvinceString)
    {
    document.all.regprovince.value = document.all.regprovince.options[i].value;
    }
    }
    }function setRegProvince(regProvinceString)
    {
    for(var i=1;i<=regProvinceString.length;i++)
    {
    for(var j=0;i+j<=regProvinceString.length;j++)
    {
    setRegProvinceValue(regProvinceString.substring(j, i + j));
    }
    }
    }setRegProvince("我家在上海");
    </script>
      

  4.   

    加入一点模糊判断
    因为option往往填写的是“上海市”而不是“上海”<select name="regprovince">
    <option value='1'>北京市</option>
    <option value='2'>天津市</option>
    <option value='3'>上海市</option>
    </select>
    <script language="javascript">
    function setRegProvinceValue(regProvinceString){
    for (var i=0; i<document.all.regprovince.length;i++){
    var reg = new RegExp(regProvinceString);  
    if (reg.test(document.all.regprovince.options[i].text))
    {
    document.all.regprovince.value = document.all.regprovince.options[i].value;
    }
    }
    }function setRegProvince(regProvinceString)
    {
    for(var i=1;i<=regProvinceString.length;i++)
    {
    for(var j=0;i+j<=regProvinceString.length;j++)
    {
    setRegProvinceValue(regProvinceString.substring(j, i + j));
    }
    }
    }setRegProvince("我家在上海");
    </script>