/*
* 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>
分享到:
相关推荐
- 可能的 `data.json` 或其他数据文件,用于存储自动完成的选项。 - 如果有服务器端部分,可能包含 `server.js` 或类似文件,用于处理数据请求。 在实际项目中,你可能需要根据具体需求调整这些组件。例如,你可以...
<script src="https://code.jquery.com/jquery-3.6.0.min.js"> ()" /> <div id="suggestions"></div> ``` #### 四、后端处理 为了支持前端的实时查询需求,我们需要创建一个处理请求的服务端脚本。...
4. **数据返回与渲染**:服务器端返回JSON格式的数据后,JavaScript代码需要解析这些数据并将其呈现在界面上。可以使用HTML和CSS创建一个下拉列表或使用现有的插件如AutoComplete、Typeahead等。 5. **性能优化**:...
这通常包括引入jQuery库、jQuery UI(用于Autocomplete功能)以及jQuery Ingrid的CSS和JavaScript文件。确保这些文件已正确地链接到您的HTML或ASP.NET页面,以便它们可以在浏览器中正确加载。 ```html <!-- 引入...
data: $.extend({}, customParams, { search: userInput }), dataType: "json", success: function(data) { response($.map(data, function(item) { return { label: item.label, value: item.value }; }))...
在ASP.NET开发中,为了提升用户体验,经常需要使用到自动完成(AutoComplete)功能,它可以在用户输入文本时提供预填充建议。这个标题提到的是利用jQuery插件在ASP.NET 2.0环境中实现一个自动完成控件,以重写...
data: {query: userInput}, dataType: 'json', success: function(response) { var suggestions = response.suggestions; // 假设服务器返回的数据是一个包含建议的数组 var html = ''; for (var i = 0; i ; i...
li.textContent = JSON.stringify(data); messagesList.appendChild(li); }); messageInput.addEventListener('keyup', (event) => { if (event.key === 'Enter') { event.preventDefault(); socket.emit('...
在Sublime Text中,用户配置文件通常位于`%APPDATA%\Sublime Text 3\Packages\User`目录下,其中包含了`Preferences.sublime-settings`文件,这是用户可以自定义的主要设置文件。通过修改这个JSON格式的文件,你可以...
- 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基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...
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基于一些开源的程序ExtJS, HtmlAgilityPack, Nii.JSON, YUICompressor。 示例: http://extasp.net/ 开源: http://extaspnet.codeplex.com/ 博客: http://sanshi.cnblogs.com/ 邮箱: sanshi.ustc@gmail...
- **JavaScript**:通过XMLHttpRequest对象发起异步请求。 - **用途**:提高用户体验,减少服务器负担。 ##### JSP9大隐视对象中四个作用域的大小与作用范围 - **page**:当前页面范围内有效。 - **request**:...