ajax自动完成控件 我用ajax实现的有自动完成功能的textbox,用的是lookup.js;可是一个页面中放两个textbox只能有一个具有自动完成功能,另外一个就和一般的textbox一样,大家遇到这种情况吗,如何解决啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 js主要完成下拉列表的绘制,选中触发的事件等功能,部分主要函数如下 function InitQueryCode (queryFieldName, hiddenDivName) { // 指定文本输入框的onblur 和 onkeydown 响应函数 queryField = document.getElementById(queryFieldName); queryField.onblur = hideDiv; queryField.onkeydown = keypressHandler; // 设置 queryField 的 autocomplete 属性为"off" queryField.autocomplete = "off"; // 如果没有指定的hiddenDivName,取默认值"querydiv" if (hiddenDivName) { divName = hiddenDivName; } else { divName = "querydiv"; } // IFrame 的 name ifName = "queryiframe"; // 100ms后调用mainLoop()函数 setTimeout("mainLoop()", 100); } /** 获取下拉区的div,如果没有则创建 */ function getDiv (divID) { if(!globalDiv) { // 如果div 在页面中不存在,创建一个新的div if(!document.getElementById(divID)) { var newNode = document.createElement("div"); newNode.setAttribute("id",divID); document.body.appendChild(newNode); } // globalDiv设置为div 的引用 globalDiv = document.getElementById(divID); // 计算div左上角的位置 var x = queryField.offsetLeft; var y = queryField.offsetTop + queryField.offsetHeight; var parent = queryField; while (parent.offsetParent) { parent = parent.offsetParent; x += parent.offsetLeft; y += parent.offsetTop; } // 如果没有对div 设置格式,则为其设置相应的显示样式 if(!divFormatted) { globalDiv.style.backgroundColor = DIV_BG_COLOR; globalDiv.style.fontFamily = DIV_FONT; globalDiv.style.padding = DIV_PADDING; globalDiv.style.border = DIV_BORDER; globalDiv.style.width = DIV_WIDTH; globalDiv.style.fontSize = DIV_FONTSIZE; globalDiv.style.position = "absolute"; globalDiv.style.left = x + "px"; globalDiv.style.top = y + "px"; globalDiv.style.visibility = "hidden"; globalDiv.style.zIndex = 10000; divFormatted = true; } } return globalDiv; } /** 根据返回的结果集显示下拉区 */ function showQueryDiv (resultArray) { // 获取div 的引用 var div = getDiv (divName); // 如果div中有内容,则删除 while (div.childNodes.length > 0) { div.removeChild(div.childNodes[0]); } // 依次添加结果 for (var i = 0; i < resultArray.length; i++) { //每一个结果也是一个div var result = document.createElement("div"); // 设置结果div的显示样式 result.style.cursor = "pointer"; result.style.padding = "2px 0px 2px 0px"; // 设置为未选中 _unhighlightResult(result); // 设置鼠标移进,移出等事件响应函数 result.onmousedown = selectResult; result.onmouseover = highlightResult; result.onmouseout = unhighlightResult; // 结果的文本是一个span var result1 = document.createElement("span"); // 设置文本span的显示样式 result1.className = "result1"; result1.style.textAlign = "left"; result1.style.fontWeight = "lighter"; result1.innerHTML = resultArray[i]; // 将span添加为结果div的子节点 result.appendChild(result1); // 将结果div添加为下拉区的子节点 div.appendChild(result); } // 如果结果集不为空,则显示,否则不显示 showDiv(resultArray.length > 0); } InitQueryCode函数只能在 <body>中onload(),问题是否出在这儿? <body MS_POSITIONING="GridLayout" onload="javascript:InitQueryCode('textbox的id')"> InitQueryCode('textbox1的id');InitQueryCode('textbox2的id'); .net 2.0中有自带的ajax控件中有此功能啊,只要都放在UpdatePanne中OK了吧.... to:jxnchk 这样我试过不行.to:zhiguo2008 我用的是vs2003 .net1.1 如何记录C#Form最小化前的坐标 Visual Studio 2005调试 跪求匹配不以"00"结尾的正则表达式,请各位大哥多多帮忙。 DataGridPrintDocument需要引入什么命名空间? 看了前人的问题,没看懂,自己问:如何加密并解密App.config? 这段代码执行 怎么会卡住??? APS.NET 属性修改 关于分析html的问题 QQ号被人盗了,大家帮忙想想办法 谁知道pdf控件pdfctrl保存的方法?up有分! [快速结贴]如何给webservice传递QueryString参数?webservice应该如何设计此方法? IIS应用程序池问题
function InitQueryCode (queryFieldName, hiddenDivName)
{
// 指定文本输入框的onblur 和 onkeydown 响应函数
queryField = document.getElementById(queryFieldName);
queryField.onblur = hideDiv;
queryField.onkeydown = keypressHandler; // 设置 queryField 的 autocomplete 属性为"off"
queryField.autocomplete = "off";
// 如果没有指定的hiddenDivName,取默认值"querydiv"
if (hiddenDivName)
{
divName = hiddenDivName;
}
else
{
divName = "querydiv";
} // IFrame 的 name
ifName = "queryiframe"; // 100ms后调用mainLoop()函数
setTimeout("mainLoop()", 100);
} /**
获取下拉区的div,如果没有则创建
*/
function getDiv (divID)
{
if(!globalDiv)
{
// 如果div 在页面中不存在,创建一个新的div
if(!document.getElementById(divID))
{
var newNode = document.createElement("div");
newNode.setAttribute("id",divID);
document.body.appendChild(newNode);
} // globalDiv设置为div 的引用
globalDiv = document.getElementById(divID); // 计算div左上角的位置
var x = queryField.offsetLeft;
var y = queryField.offsetTop + queryField.offsetHeight;
var parent = queryField;
while (parent.offsetParent)
{
parent = parent.offsetParent;
x += parent.offsetLeft;
y += parent.offsetTop;
} // 如果没有对div 设置格式,则为其设置相应的显示样式
if(!divFormatted)
{
globalDiv.style.backgroundColor = DIV_BG_COLOR;
globalDiv.style.fontFamily = DIV_FONT;
globalDiv.style.padding = DIV_PADDING;
globalDiv.style.border = DIV_BORDER;
globalDiv.style.width = DIV_WIDTH;
globalDiv.style.fontSize = DIV_FONTSIZE;
globalDiv.style.position = "absolute";
globalDiv.style.left = x + "px";
globalDiv.style.top = y + "px";
globalDiv.style.visibility = "hidden";
globalDiv.style.zIndex = 10000; divFormatted = true;
}
} return globalDiv;
} /**
根据返回的结果集显示下拉区
*/
function showQueryDiv (resultArray)
{
// 获取div 的引用
var div = getDiv (divName); // 如果div中有内容,则删除
while (div.childNodes.length > 0)
{
div.removeChild(div.childNodes[0]);
}
// 依次添加结果
for (var i = 0; i < resultArray.length; i++)
{
//每一个结果也是一个div
var result = document.createElement("div");
// 设置结果div的显示样式
result.style.cursor = "pointer";
result.style.padding = "2px 0px 2px 0px";
// 设置为未选中
_unhighlightResult(result);
// 设置鼠标移进,移出等事件响应函数
result.onmousedown = selectResult;
result.onmouseover = highlightResult;
result.onmouseout = unhighlightResult; // 结果的文本是一个span
var result1 = document.createElement("span");
// 设置文本span的显示样式
result1.className = "result1";
result1.style.textAlign = "left";
result1.style.fontWeight = "lighter";
result1.innerHTML = resultArray[i]; // 将span添加为结果div的子节点
result.appendChild(result1); // 将结果div添加为下拉区的子节点
div.appendChild(result);
} // 如果结果集不为空,则显示,否则不显示
showDiv(resultArray.length > 0);
} InitQueryCode函数只能在 <body>中onload(),问题是否出在这儿?
<body MS_POSITIONING="GridLayout" onload="javascript:InitQueryCode('textbox的id')">
InitQueryCode('textbox2的id');
to:zhiguo2008 我用的是vs2003 .net1.1