可以啊,给文本框加onclick事件,让select显示,在给select控件添加onchange事件,让其隐藏并把值赋予文本框。
<script>
function fun_1(){
document.getElementById("sel_div").style.display="";
}
function fun_2(v){
document.getElementById("txt_1").value=v;
document.getElementById("sel_div").style.display="none";
}
</script><input type="text" id="txt_1" onclick="fun_1()"/>
<div id="sel_div" style="display:none">
<select onchange="fun_2(this.value)">
<option value="A">A<option>
<option value="B">B<option>
<option value="C">C<option>
</select>
</div>
<script>
function fun_1(){
document.getElementById("sel_div").style.display="";
}
function fun_2(v){
document.getElementById("txt_1").value=v;
document.getElementById("sel_div").style.display="none";
}
</script><input type="text" id="txt_1" onclick="fun_1()"/>
<div id="sel_div" style="display:none">
<select onchange="fun_2(this.value)">
<option value="A">A<option>
<option value="B">B<option>
<option value="C">C<option>
</select>
</div>
<head>
</head>
<body>
<input type="text" id="txt">
<ul id="ca" style="display:none">
<li>a</li><li>b</li><li>c</li><li>d</li><li>e</li><li>f</li>
</ul>
</body>
</html>
<script>
var oIpu=document.getElementById("txt");
var oUl=document.getElementById("ca");
oIpu.onclick=function(){oUl.style.display="block";}
var oLi=oUl.getElementsByTagName("li");
for(var i=0;i<oLi.length;i++){
oLi[i].onclick=function(){
document.getElementById("txt").value=this.firstChild.nodeValue;
oUl.style.display="none";
};
}</script>