JS 클래스 자동 완성(순수 JS,Ajax 모드)

1.포 장 된 JS 파일//**********************************************************/생 성 날짜:2009-03-10/저자:oloen//열 삼 득:JS 클래스 자동 완성//용법://var auto=new autoComplete(클 라 이언 트 ID);//auto.Init(document.all.클 라 이언 트 ID);//***********************************//자동 완성 function autoComplete(id){var me=this;/바 인 딩 컨트롤 클 라 이언 트 ID me.AutoComplete Control ID me.handle=null me.DivResult 자동 완성;me.currentIndex = -1; me.LastIndex = -1; me.requestObj; me.CurrentTD = ''; if(id != null && typeof(id) != undefined) me.AutoCompleteControlID = id; if(me.DivResult == null||typeof(me.DivResult)=="undefined") { me.DivResult = document.createElement("div"); var parent = document.getElementById(me.AutoCompleteControlID).parentElement; if(typeof(parent)!="undefined"){ parent.appendChild(me.DivResult); } } this.Init = function(obj) { me.handle = obj me.AutoCompleteControlID = obj.id } this.Auto = function() { me.DivResult.style.position = "absolute"; me.DivResult.style.top = me.handle.getBoundingClientRect().top + 17; me.DivResult.style.left = me.handle.getBoundingClientRect().left; me.DivResult.style.width = me.handle.width; me.DivResult.style.height = 20; me.DivResult.style.backgroundColor = "#ffffff"; //누 르 면 위로,아래로 또는 Enter if(event.keyCode=38|event.keyCode==40||event.keyCode==13){me.selectItem();}else{//드 롭 다운 선택 항목 을-1 currentIndex=-1 로 복원 합 니 다.if(window.XMLHttpRequest) { me.requestObj = new XMLHttpRequest(); if(me.requestObj.overrideMimeType) me.requestObj.overrideMimeType("text/xml"); } else if(window.ActiveXObject) { try { me.requestObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { me.requestObj = new ActiveXObject("Microsoft.XMLHTTP"); } } if(me.requestObj == null) return; me.requestObj.onreadystatechange = me.ShowResult; me.requestObj.open("GET", "../Common/AutoComplete.aspx?InputValue=" + escape(me.handle.value), true); me.requestObj.send(); } } this.ShowResult = function() { if (me.requestObj.readyState == 4) { me.DivResult.innerHTML = me.requestObj.responseText; me.DivResult.style.display = ""; } } this.selectItem=function(){//결과 var result=document.getElementById("TmpAutoComplete_tblResult"); if (!result) return; if(result.rows[me.LastIndex] != null) { result.rows[me.LastIndex].style.backgroundColor = "#FFFFFF"; result.rows[me.LastIndex].style.color = "#000000"; } var maxRow = result.rows.length; //위로 if(event.keyCode==38&&me.currentIndex>0)me.currentIndex-;/아래 if(event.keyCode==40&&me.currentIndex///백 스테이지 조회 페이지 자동 완성////public partial class CommonAutoComplete : System.Web.UI.Page { const string tbStyle = @""; /// <요약>//필터 조건//string Filter=string.Empty;//<요약>//조회 값//string InputValue=string.Empty;////자동 완성 카 테 고리//현재 판매 시스템 만 지원 합 니 다 UnitNo 조회//string Type=string.Empty;//<요약>//결 과 를 되 돌려 주 는 문자//string ReturnStr=string.Empty;private void Page_Load(object sender, System.EventArgs e) { switch (Type.ToLower()) { case "psunit": default: AutoPSUnitNo(); break; } Response.Clear(); Response.ContentType = "text/xml"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.Write(ReturnStr); Response.End(); } protected override void OnInit(EventArgs e) { base.OnInit(e); Filter = Request.QueryString["Filter"] ?? ""; InputValue = Request.QueryString["InputValue"] ?? ""; InputValue.Replace("'","''"); } /// ///분 양 시스템 방 번호 자동 완성//void AutoPSUnitNo(){if(!string.IsNullOrEmpty(InputValue)) { ReturnStr = @""; #region 데이터베이스 조작//string Sql=string.Format(@"SELECT TOP 10 UnitID,UnitNo,ProjectNo,PhaseNo,BlockNo FROM ViewPS_Unit WHERE UnitNo LIKE '%{0}%'", InputValue); //using (SqlDataReader sdr = DataAccessHelper.ExecuteReader(Sql) as SqlDataReader) //{ // if (sdr == null || !sdr.HasRows) // { // ReturnStr = string.Empty; // return; // } // while (sdr.Read()) // { // string td = string.Format(@"", sdr["ProjectNo"].ToString()); // //td += string.Format(@"", sdr["PhaseNo"].ToString()); // //td += string.Format(@"", sdr["BlockNo"].ToString()); // td += string.Format(@"", sdr["UnitNo"].ToString()); // ReturnStr += string.Format(@"{2}", sdr["UnitID"].ToString(), sdr["UnitNo"].ToString(), td); // } //} #endregion for (int i = 0; i < 10; i++){string td=string.Format(@"","번호");td+=string.Format(@"","이름");td += string.Format(@"", i.ToString()); td += string.Format(@"", InputValue); ReturnStr += string.Format(@"{2}", i.ToString(), InputValue, td); } ReturnStr += @"
{0}{0}{0}{0}
{0}{0}{0}{0}
"; } } } 2 참조 페이지 제목 없 음 1var auto=new autoComplete('t1')auto.Init(document.all.t1);//선 택 된 일 function Return AutoComplete(ReturnValue){alert(ReturnValue)}캡 처 그림 을 보 여 줍 니 다패키지 다운로드 주소

좋은 웹페이지 즐겨찾기