<select name="aaa" onchange="show(this)">
<option value="111">111</option>
<option value="222">222</option>
<option value="333">333</option>
<option value="444">444</option>
</select>
<input name="bbb">
<script language="javascript">
function show(obj)
{
var objBBB=document.getElementById("bbb")
var str=objBBB.value;
var strSelect=obj.value
if(str=="")
{
str=strSelect
}else{
if(!new RegExp(","+strSelect+",").test(","+str+","))
{
str=str+","+strSelect;
}
}
objBBB.value=str
}
</script>

解决方案 »

  1.   


    <script>
    function dosel(obj){
       if(obj.selectedIndex==0) return false;
       var val = obj.options[obj.selectedIndex].value;
       var s = document.forms[0].txt.value
       var arr = s.split(",");
       var b = false;
       for(var i=0;i<arr.length;i++){
           if(arr[i]==val){b = true; break;}
       }
       if(!b){
          if(s=="") s = val;
          else s += "," + val; 
       }
       document.forms[0].txt.value = s;
    }
    </script>
    <form>
    <select name="sel" onchange="dosel(this);">
    <option value="">请选择</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    </select>
    <input type="text" name="txt" readonly="true" />
    </form>
      

  2.   

    <script>
    function getvalue(o){
    var str="";//
    for(var i=0;i<o.length;i++){
    op = o.options[i];
    if(op.selected==true)str+=op.value+","
    }
    document.getElementById("mytext").value=str.substr(0,str.length-1)
    }
    </script>
    <select onblur="getvalue(this)" multiple="multiple" size="2">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
    </select>
    <input id='mytext' name='mytext'/>
      

  3.   

    <script>
    function getvalue(v){
    var str,o;//
    o = document.getElementById("mytext")
    str = o.value
    str = (str?(","+str+",").replace(","+v+",",","):",")+v
    o.value=str.substr(1,str.length)
    }
    </script>
    <select onchange="getvalue(this.value)">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
    </select>
    <input id='mytext' name='mytext'/>
      

  4.   

    <script>
    function getvalue(v){
        var str,o;
    var   regu   = "^("+v+")"; 
        o = document.getElementById("mytext")
        str = o.value;
    var   re   =   new   RegExp(regu);
    if(str==""){
    o.value=v;
    }
    else{
     if(str.search(re)   !=   -1){   
          return false;   
           }   
    else{
    o.value=str+","+v;
    }
    }
        }
    </script>
    <select onchange="getvalue(this.value)">
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3>3</option>
        <option value=4>4</option>
        <option value=5>5</option>
    </select>
    <input id='mytext' name='mytext'/>
      

  5.   

    上面那个有错误
    <script>
    <script>
    function getvalue(v){
        var str,o;//
        o = document.getElementById("mytext")
        str = o.value;
    if(str==""){
    o.value=v;
    }
    else{
     if(str.indexOf(""+v+"")>=0){   
          return true;   
           }   
    else{
    o.value=str+","+v;
    }
    }
    }
    </script>
    <select onchange="getvalue(this.value)">
        <option value=1>1</option>
        <option value=2>2</option>
        <option value=3>3</option>
        <option value=4>4</option>
        <option value=5>5</option>
    </select>
    <input id='mytext' name='mytext'/>