`
xxpniu
  • 浏览: 16321 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Js AutoComplete Data User Json

阅读更多

/*
* author xxp 2008-12-2-19
*/

/*
   {
	   responseInfo:{success:true,message:'返回数据!'},
	   data : [
			     {title:'<html>',completeData:'auto'},..
			   ]
	   }
  
*/

var AutoComplete = Class.create({
							   initialize:function(url,input,div){
								    
									this.url=url;
									this.input=input;
									this.div=div;
									var _in = $(input);
									var _div= $(div);
									this.fix = null;
									$(this.input)._autoComplete=this;
									$(this.input).onkeyup=function(){
										  
										  if(!event) event = window.event;
											  switch(event.keyCode) {
											   case Event.KEY_ESC:
												 this._autoComplete.doHide();
												 return;
											}
											this._autoComplete.doPost(); 
										};
							    },
								//getData
								data:null,
								doPost:function(){
									var obj=this;
									new Ajax.Request(
													  this.url+'?k='+$(this.input).value,
													  {
														  onSuccess:function(r){
															    try{
																 var _d = r.responseText.evalJSON();
																 if(_d.responseInfo.success&&_d.data.length>0){
																	 obj.data=_d;
																	 obj.doDisplay();
																	 }
																}catch(ex){
																	 //do nothing 
																	 //for test please use this code 
																	 alert("process data :"+ex.message);
																	}
															  }
														  }
													 );
									},
								doDisplay : function(){
									 this.doShow();
									 try{
									 var obj =this;
									 var id = new Date().getTime();
									  var html='<div id="'+id+'fix" style="position:absolute; border:1px #000000 solid;background:#FFFFFF"></div>';
									  $(this.div).innerHTML=html;
									  this.fix=$(id+'fix');
									  var _ul = new Element('ul');
									  this.fix.appendChild(_ul);
									  this.data.data.each(
											  function(i){
												  //process
												  var _li = new Element('li');
												  _li._autoComplete = obj;
												  _li.innerHTML = i.title;
												  _li._data =  i.completeData;
												  _li.onclick = function (){
													     this._autoComplete.doEnter(this);
													  }
												  _li.onmouseover=function(){this.setStyle({background:"#E6ECFB"})};
												  _li.onmouseout=function(){this.setStyle({background:""})};	 
												  _li.setStyle({cursor:'pointer'});	  
												  _ul.appendChild(_li);
												  }			  
											);
									 }catch(ex){
										 alert(ex.message);
										 }
									},//doDisply	
								doEnter  : function(obj){
									$(this.input).value=obj._data;
									this.doHide();
									},
								doShow   : function(){
									if($(this.div).getStyle('display')=='none'){
										$(this.div).setStyle({'display':'block'});
										}
									
									},	
								doHide   : function(){
									if($(this.div).getStyle('display')=='block'){
										$(this.div).setStyle({'display':'none'});
										}
									if(this.fix)	
									this.fix.remove();		
									}	
								}
							  );















    <input  type="text" name="user" id="user" value="<%=User%>"  autocomplete="off"  />
    <div id="userNoAuto" class="autoComplete"></div>
      <script>
        new AutoComplete('json/User.asp','user','userNoAuto');
      </script>
    </div>

分享到:
评论

相关推荐

    autocomplete:使用 node.js 自动完成

    - 可能的 `data.json` 或其他数据文件,用于存储自动完成的选项。 - 如果有服务器端部分,可能包含 `server.js` 或类似文件,用于处理数据请求。 在实际项目中,你可能需要根据具体需求调整这些组件。例如,你可以...

    老二牛车教育NET程序员面试题之AutoComplete

    &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt; ()" /&gt; &lt;div id="suggestions"&gt;&lt;/div&gt; ``` #### 四、后端处理 为了支持前端的实时查询需求,我们需要创建一个处理请求的服务端脚本。...

    AJAX+js实现aspnet中textbox的智能提示

    4. **数据返回与渲染**:服务器端返回JSON格式的数据后,JavaScript代码需要解析这些数据并将其呈现在界面上。可以使用HTML和CSS创建一个下拉列表或使用现有的插件如AutoComplete、Typeahead等。 5. **性能优化**:...

    jquery ingrid示例代码(asp.net)

    这通常包括引入jQuery库、jQuery UI(用于Autocomplete功能)以及jQuery Ingrid的CSS和JavaScript文件。确保这些文件已正确地链接到您的HTML或ASP.NET页面,以便它们可以在浏览器中正确加载。 ```html &lt;!-- 引入...

    基于JQuery的自动完成组件

    data: $.extend({}, customParams, { search: userInput }), dataType: "json", success: function(data) { response($.map(data, function(item) { return { label: item.label, value: item.value }; }))...

    jquery插件实现的asp.net自动完成控件

    在ASP.NET开发中,为了提升用户体验,经常需要使用到自动完成(AutoComplete)功能,它可以在用户输入文本时提供预填充建议。这个标题提到的是利用jQuery插件在ASP.NET 2.0环境中实现一个自动完成控件,以重写...

    ajax实现自动完成功能带源码

    data: {query: userInput}, dataType: 'json', success: function(response) { var suggestions = response.suggestions; // 假设服务器返回的数据是一个包含建议的数组 var html = ''; for (var i = 0; i ; i...

    nodesocketio:示例 nodejs socketio 实现

    li.textContent = JSON.stringify(data); messagesList.appendChild(li); }); messageInput.addEventListener('keyup', (event) =&gt; { if (event.key === 'Enter') { event.preventDefault(); socket.emit('...

    SublimeConfig:我的Sublime Text Editor 3配置文件

    在Sublime Text中,用户配置文件通常位于`%APPDATA%\Sublime Text 3\Packages\User`目录下,其中包含了`Preferences.sublime-settings`文件,这是用户可以自定义的主要设置文件。通过修改这个JSON格式的文件,你可以...

    SublimeColors-IcarusEx:Sublime Text 2 的 IcarusEx 主题端口

    - Windows: `%APPDATA%\Sublime Text 2\Packages\User` - macOS: `~/Library/Application Support/Sublime Text 2/Packages/User` - Linux: `~/.config/sublime-text-2/Packages/User` 3. **激活主题**:打开 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

    ZendFramework中文文档

    AutoComplete 7.8.4.2.1. AutoCompletion with Dojo 7.8.4.2.2. AutoCompletion with Scriptaculous 7.8.4.3. ContextSwitch and AjaxContext 7.8.4.3.1. 缺省可用的上下文 7.8.4.3.2. 创建定制的上下文 7.8....

    ExtAspNet_v2.3.2_dll

    注:ExtAspNet基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...

    java面试知识

    - **JavaScript**:通过XMLHttpRequest对象发起异步请求。 - **用途**:提高用户体验,减少服务器负担。 ##### JSP9大隐视对象中四个作用域的大小与作用范围 - **page**:当前页面范围内有效。 - **request**:...

Global site tag (gtag.js) - Google Analytics