请教大家一个AJAX的问题 是关于input 搜索提示的

cymple 2006-08-29 10:35:39
我下载了别人的一段代码
代码如下:
10.asp:
<SCRIPT language=javascript src="js/SmartBox_Index.js" type=text/javascript></SCRIPT>
<FORM name=second method=get target=_blank>
<INPUT id=Banner_TextBox onkeydown="return SB_OnKeyDown('Banner', event)" onblur="return SB_OnBlur('Banner', event)" onkeyup="return SB_OnKeyUp('Banner', event)"
style="WIDTH: 107px" name=BannerTextBox autocomplete="off">
</form>

SmartBox_Index.js:
var beanType = 2;
var menuItemArray = new Array();
var menuItemSelectIndex = -1;
var lastRequest = "";

function SB_SetBeanType(type){
beanType = type;
}

function SB_ShowMenu(ctrlID, show){
var menu = document.getElementById(ctrlID + "_Menu");

if(show){
var btn = document.getElementById(ctrlID + "_TextBox");
if(btn){
var x = btn.offsetLeft;
var y = btn.offsetTop;
while(btn = btn.offsetParent){
x += btn.offsetLeft;
y += btn.offsetTop;
}
menu.style.left = x;
menu.style.top = y + 22;
}
menu.style.display = "block";
}
else{
menu.style.display = "none";
}
}

function SB_OnDropDown(ctrlID){
lastRequest = "";
SB_LoadMenuItemArray(ctrlID);
document.getElementById(ctrlID + "_TextBox").focus();
}

function SB_OnBlur(ctrlID, event){
SB_ShowMenu(ctrlID, false);
}

function SB_OnKeyDown(ctrlID, event){
if(event.keyCode == 13 || event.keyCode == 24) return false
else return true;
}

function SB_OnKeyUp(ctrlID, event){
var returnValue = false;
switch(event.keyCode){
case 38: // UP
SB_SetMenuItemSelectIndex("OFFSET", -1);
SB_RebuildMenuSelection(ctrlID);
break;

case 37: // LEFT
SB_SetMenuItemSelectIndex("OFFSET", -1);
SB_RebuildMenuSelection(ctrlID);
break;

case 40: // DOWN
SB_SetMenuItemSelectIndex("OFFSET", 1);
SB_RebuildMenuSelection(ctrlID);
break;

case 39: // RIGHT
SB_SetMenuItemSelectIndex("OFFSET", 1);
SB_RebuildMenuSelection(ctrlID);
break;

case 13: // ENTER
SB_SelectMenuItem(ctrlID);
break;

case 24: // ESC
SB_ShowMenu(ctrlID, false);
break;

case 8: // BACKSPACE
SB_LoadMenuItemArray(ctrlID);
returnValue = true;
break;

default:
SB_LoadMenuItemArray(ctrlID);
returnValue = true;
break;
}
return returnValue;
}

function SB_SelectMenuItem(ctrlID){
var text = "";
var menu = document.getElementById(ctrlID + "_Menu");
var menuItemList = menu.childNodes;
for(var i=0; i< menuItemList.length; i++){
if(i == menuItemSelectIndex){
text = menuItemList[i].innerText;
break;
}
}

if(text != "") document.getElementById(ctrlID + "_TextBox").value = text;

SB_ShowMenu(ctrlID, false);
return false;
}

function SB_SetMenuItemSelectIndex(action, index){
if(action == "SET")
menuItemSelectIndex = index;
if(action == "OFFSET")
menuItemSelectIndex += index;

if(menuItemSelectIndex < 0) menuItemSelectIndex = menuItemArray.length -1;
if(menuItemSelectIndex >= menuItemArray.length) menuItemSelectIndex = 0;
}

function SB_RebuildMenu(ctrlID){
var html = "";
for(var i=0; i<menuItemArray.length; i++){
html += "<div";
html += " onClick=\"SB_SelectMenuItem('" + ctrlID + "', '" + menuItemArray[i] + "');\"";
html += " onMouseOver=\"SB_SetMenuItemSelectIndex('SET', " + i + "); SB_RebuildMenuSelection('" + ctrlID + "');\"";
html += " onBlur=\"return SB_ShowMenu('" + ctrlID + "', true);\"";
html += ">";
html += menuItemArray[i];
html += "</div>";
}
document.getElementById(ctrlID + "_Menu").innerHTML = html;

menuItemSelectIndex = -1;
}

function SB_RebuildMenuSelection(ctrlID){
var menu = document.getElementById(ctrlID + "_Menu");
var menuItemList = menu.childNodes;
for(var i=0; i< menuItemList.length; i++){
if(i == menuItemSelectIndex) menuItemList[i].className = "MB_MenuSelectedItem";
else menuItemList[i].className = "";
}
}

function SB_LoadMenuItemArray(ctrlID){
if(lastRequest == beanType + document.getElementById(ctrlID + "_TextBox").value){
return;
}
else{
lastRequest = beanType + document.getElementById(ctrlID + "_TextBox").value;
}

var httpRequest = SB_GetHttpRequest();
httpRequest.onreadystatechange = function()
{
if(httpRequest.readyState == 1)// 开始加载
{
//html = "数据载入中...";
}
if(httpRequest.readyState == 4) // 调用完毕
{
if(httpRequest.status == 200) // 加载成功
{
var xmldoc = httpRequest.responseXML;

var listItems = xmldoc.getElementsByTagName("listItem");
var showMenuNeeded = false;

menuItemArray = new Array();
for(var i=0; i<listItems.length; i++)
{
showMenuNeeded = true;
var text = listItems[i].attributes[0].value;
menuItemArray[menuItemArray.length] = text; // read a menu item
}

if(showMenuNeeded){
SB_RebuildMenu(ctrlID);
SB_ShowMenu(ctrlID, true);
}
else{
SB_ShowMenu(ctrlID, false);
}
}
/*
else{
html = "请求数据失败...";
}
*/
}
}
// var url = "/ModuleData?id=" + moduleID + "&ref=" + new Date().valueOf();
//var url = "/Controls/SmartBox?type=" + beanType + "&ctrlID=" + ctrlID + "&keyword=" + escape(document.getElementById(ctrlID + "_TextBox").value) + "&rnd=" + new Date().valueOf();
//var url = "images/SmartBox.xml";
var url="http://127.0.0.1/chem17new/text/AutoComplete1.asp?keywords=" + escape(document.getElementById(ctrlID + "_TextBox").value);
httpRequest.open("get", url, true);
httpRequest.send(null);
}

function SB_GetHttpRequest(){
var httpRequest;
if (window.XMLHttpRequest){ // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType){
httpRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject){ // IE
try{
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}
return httpRequest;
}



AutoComplete1.asp: 我已经静态写入一写关键字
<?xml version="1.0" encoding="gb2312" ?>
<data>
<list>
<listItem text="waters" />
<listItem text="wtw" />
<listItem text="waters 液相操作SOP" />
<listItem text="waters 2695" />
<listItem text="water" />
<listItem text="waters公司" />
<listItem text="WATERS色谱讲座" />
<listItem text="wiggen hauser" />
<listItem text="WEEE" />
<listItem text="waters 2487" />
</list>
</data>

可是他怎么就死活运行不了啊 哥哥姐姐帮忙啊
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cymple 2006-08-29
  • 打赏
  • 举报
回复
唉~~~~~~~~~
「已注销」 2006-08-29
  • 打赏
  • 举报
回复
晕.也太长了吧.重点重点...
cymple 2006-08-29
  • 打赏
  • 举报
回复
哪个行行好来个人啊
cymple 2006-08-29
  • 打赏
  • 举报
回复
高手 在哪里呀

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧