日期:2014-05-18  浏览次数:20424 次

请教一个控件的问题~~~~
我想实现一个控件,就像MSDN里的那个搜索一样,又可以输入又可以用DDL来选择的那种,请问如何实现阿

------解决方案--------------------
up
------解决方案--------------------
没看明白
------解决方案--------------------
无这种控件

可以自己拿JS,把TextBox和DropDownList组合起来使用。

友情提示:用TextBox加一个图片,点击图片,出现下拉框。或者TextBox的onfocus事件出现下拉框。
------解决方案--------------------
楼上是正解,可以把js封闭成一个控件,简单实现
<HTML>
<HEAD>
<SCRIPT LANGUAGE= "javascript ">
</SCRIPT>

<SCRIPT LANGUAGE= "javascript ">
function Body_Init(oSelect,oText)
{
var iLeft= oSelect.offsetLeft;
var iTop = oSelect.offsetTop;
var iWidth=oSelect.clientWidth;
var iHeight=oSelect.clientHeight;
oSelect.style.clip= 'rect(0, '+iWidth+ ', '+iHeight+ ', '+(iWidth-18)+ ') ';

oText.style.width=iWidth;
oText.style.height=iHeight;
oText.style.top =iTop;
oText.style.left=iLeft;

}
function Combo_Select(oSelect,oText)
{
oText.value=oSelect.options[oSelect.selectedIndex].text;
alert(oText.value);
}
function Text_ChkKey(oSelect,oText)
{
if(event.keyCode==13)
{
var nIndex=HasTheValue(oText.value,oSelect);
if(nIndex !=-1 && nIndex !=oSelect.selectedIndex)
{
oSelect.selectedIndex=nIndex;
}
}
}
function HasTheValue(name,oSelect)
{
if(oSelect.options.length <1)
return -1;
var i=0;
for(i=0;i <oSelect.options.length;i++)
{
if(oSelect.options[i].text==name)
return i;
}
return -1;
}

</SCRIPT>
</HEAD>
<BODY onload= "javascript:Body_Init(pCombo,pText); ">
<table width=50% width=50% align= "center " valign= "middle ">
<tr> <td>
<SELECT STYLE= "position:absolute;left:0;top:0; " ONCHANGE= "Combo_Select(this,pText) " NAME= "pCombo " >
<option value= "d "> test1
<option value= "dd "> test2

</SELECT>
<INPUT STYLE= "position:absolute; " onKeyPress= "Text_ChkKey(pCombo,this) " TYPE= "TEXT " NAME= "pText ">
</td> </tr>
</table>
</BODY>
</HTML>