aspx:
<asp:TextBox ID="txtHouseUse1" runat="server" class="top31" Width="159px" AutoPostBack="False"
οnmοusedοwn="Show1(this,'hidden1','selectWYuse','txtHouseUse1');"
οnkeyup="Select1(this,'hidden1','selectWYuse','txtHouseUse1');"
BorderColor="#999999"
BorderStyle="Solid" BorderWidth="1px"></asp:TextBox>
<div id="div2" runat="server" style="display:none;">
<select name="aabb" id="selectWYuse" class="select" >
<option value=""></option>
<option value="选项1">选项</option>
<option value="选项2">选项</option>
<option value="选项3">选项</option>
<option value="选项4">选项</option>
<option value="选项5">选项</option>
</select>
</div>
<input type="hidden" runat="server" id="hidden1" style="WIDTH:0px;HEIGHT:0px"/>
js:
var popUp1;
var inputHidden;
var select;
var txt;
function Show1(obj,hiddenname,selectname,txtname)
{
inputHidden=hiddenname;
select=selectname;
txt=txtname;
popUp1 = new PopUp1();
popUp1.CreatePopUp();
popUp1.PositionItem(obj);
}
function Select1(obj,hiddenname,selectname,txtname)
{
try
{
inputHidden=hiddenname;
select=selectname;
txt=txtname;
if (popUp1.IsClosed())
{
popUp1.CreatePopUp();
}
else
{
popUp1.PositionItem(obj);
// var form = document.getElementById("");
}
}
catch ( e )
{}
if ( popUp1 == undefined )
{
popUp1 = new PopUp1();
popUp1.CreatePopUp();
}
}
function PopUp1()
{
var oPopup;
var isClosed = true;
}
PopUp1.prototype.IsClosed = function() //此类函数为动态创建类函数 运行时才生成
{
return isClosed;
}
PopUp1.prototype.CreatePopUp = function()
{
oPopup = window.createPopup();
/*
oPopup.document.body.onunload = function()
{
isClosed = true;
var div = oPopup.document.getElementsByTagName('div');
var spans = div[0].getElementsByTagName('span');
for ( var i = 0; i < spans.length; i++ )
{
if ( spans[i].style.background.toLowerCase() == '#e1ecfc' )
{
if( spans[i].innerText != "")// add by wendy
{
document.getElementById(txt).value = spans[i].innerText;
//document.getElementById(inputHidden).value = spans[i].getElementsByTagName(inputHidden)[0].value;
//var test= document.getElementById('textbox');
var temp = "__doPostBack(\'"+txt+"\',\'\')" ;
//__doPostBack( 'textbox ', '');//会刷新整个页面
}
return;
}
}
if(document.getElementById(txt).value == '')//add by wendy
{
document.getElementById(txt).value = '';
document.getElementById(inputHidden).value = '';
}
}
*/
oPopup.document.body.onselectstart = function()
{
return false;
}
oPopup.document.body.oncontextmenu = function()
{
return false;
}
var oDocument = oPopup.document;
var oBody = oPopup.document.body;
var element = window.event.srcElement;
var left = element.getBoundingClientRect().left;
var top = element.getBoundingClientRect().top + element.offsetHeight;
var width = element.offsetWidth;
var oDiv = oDocument.createElement('div');
oBody.appendChild(oDiv);
oDiv.style.position = 'absolute';
//oDiv.style.zIndex = 9999;
oDiv.style.border = '1px solid #CCCCCC';
oDiv.style.overflow = 'auto';
oDiv.style.width = '100%';
oDiv.style.height = '100%';
oDiv.style.left = 0;
oDiv.style.top = 0;
var oSpan;
var oHidden;
// 绑定数据
var list = document.getElementById(select);
var index ;//= list.selectedIndex;//Items.Count
var listvalue ;//= list.options[index].value;
var listText;// = list.options[index].text;
var count = list.options.length;
for (var i = 0; i < count; i++)
{
index = i;
listvalue = list.options[index].value;
listText = list.options[index].text;
oSpan = oDocument.createElement('span');
oDiv.appendChild(oSpan);
oSpan.style.border = '1px solid #F5F5F5';
oSpan.style.height = '20px';
oSpan.style.width = '100%';
oSpan.innerHTML = listText;// 'test' + i;
oSpan.attachEvent('onclick', this.SelectItem);
oSpan.onmouseover = function()
{
this.style.background = '#E1ECFC';
}
oSpan.onmouseout = function()
{
this.style.background = '';
}
oHidden = oDocument.createElement('hidden');
oSpan.appendChild(oHidden);
oHidden.value = listvalue;// i + 'test';
}
if (txt == "txtcerAnJie" ||txt == "txtCerLinkMan" )
{
oPopup.show(left, top, width, 60, window.document.body);
}
else
{
oPopup.show(left, top, width, 227, window.document.body);
}
isClosed = false;
}
PopUp1.prototype.SelectItem = function()
{
var div = oPopup.document.getElementsByTagName('div');
var spans = div[0].getElementsByTagName('span');
for ( var i = 0; i < spans.length; i++ )
{
spans[i].style.background = '';
}
// 获取 createPopup 里面的事件源
var element = oPopup.document.parentWindow.event.srcElement;
element.style.background = '#E1ECFC';
if(element.innerText!="")//add by wendy
{
document.getElementById(txt).value = element.innerText;
oPopup.hide();
var test= document.getElementById(txt);
var temp = "__doPostBack(\'"+txt+"\',\'\')" ;
if (txt == "txtFH")
javascript:setTimeout('__doPostBack(\'txtFH\',\'\')', 0);
if (txt == "textbox")
javascript:setTimeout('__doPostBack(\'textbox\',\'\')', 0);
if (txt == "txtCerOwnerFrom2")
javascript:setTimeout('__doPostBack(\'txtCerOwnerFrom2\',\'\')', 0);
}
}
PopUp1.prototype.PositionItem = function(obj)
{
var text = obj.value;
var length = text.length;
var div = oPopup.document.getElementsByTagName('div');
var spans = div[0].getElementsByTagName('span');
for ( var i = 0; i<spans.length;i++)
{
spans[i].style.background = '';
}
for ( var i = 0; i < spans.length;i++)
{
if ( length > 0 && spans[i].innerHTML.substr(0, length) == text )
{
spans[i].style.background = '#E1ECFC';
oPopup.document.getElementsByTagName('div')[0].scrollTop = spans[i].offsetTop - spans[i].offsetHeight;
break;
}
}
}