AJAX 自动完成,如何让下拉完成框显示在最上层,复盖掉表单提交框
用AJAX做了个类似GOOGLE,BAIDU样式的自动完成功能,但是显示自动完成部分的时候老是在TABLE框内,结果把TABLE撑向下了,如何让下拉显示层自动复盖INPUT所在的TABLE呢。也就是下拉的时候,下面的东西不移动,只是让下拉框给盖住就行了。就象百度上面的一样
ajax部分
function createAjaxObj(){
var httprequest=false;
if (window.XMLHttpRequest) //为非IE浏览器生成XmlHttpRequest对象
{
httprequest=new XMLHttpRequest()
if (httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml')
}
else if (window.ActiveXObject) //为IE浏览器生成XmlHttpRequest对象
{
try {
httprequest=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
httprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
return httprequest
}
var searchReq = createAjaxObj();
function getUsername() {
if (searchReq.readyState == 4 || searchReq.readyState == 0) {
var str=document.getElementById("username").value; //获取参数
str=encodeURI(str);
var url="checkusername.jsp";
var username="username="+str;
searchReq.open("POST",url,true); //请求URL
searchReq.onreadystatechange=backusername; //状态触发事件(服务器作出响应后才执行)
searchReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
searchReq.send(username);
}
}
function backusername() { //这是回调函数,处理从服务器端返回的信息
if (searchReq.readyState == 4) {
var ss = document.getElementById('vusername')
ss.innerHTML = '';
var str = searchReq.responseText.split("\n");
for(i=0; i < str.length - 1; i++) {
var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
suggest += 'onmouseout="javascript:suggestOut(this);" ';
suggest += 'onclick="javascript:setUsername(this.innerHTML);" ';
suggest += 'class="suggest_link">' + str[i] + '</div>';
ss.innerHTML += suggest;
ss.style.display="block";
}
}
}
function suggestOver(div_value) {
div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
div_value.className = 'suggest_link';
}
function setUsername(value) {
document.getElementById('username').value = value;
document.getElementById('vusername').innerHTML = '';
document.getElementById('vusername').style.display="none";
}
因为页面设计的关系,必需用到TABLE,
JSP页面部分
<form name="form1" action="insertsale.jsp" method=post onsubmit="return checkdata()">
<table cellspacing="0" cellpadding="0" border="0" class="talbe_list">
<tr>
<td class="left1"> 客户名称: </td>
<td class="left2">
<INPUT type="text" size=40 name="username" id="username" value='' onpropertychange="getUsername();" />
<div id="vusername" style="position:relative; background-color: #ffffff;border: 1px solid #000000;left: 1px;top: 1px;height: 74px;width: 170px;display:none; z-index:2000";></div>
</td>
</tr>
<tr>
<td colspan="2" align="center" style="height: 45px; border-bottom: 1px #CCCCCC solid;">
<INPUT type='submit' value='确定添加' name='submit'></td>
</tr>
</table>
</form>