`
lgx2351
  • 浏览: 175434 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

下拉提示文本框

阅读更多

文本框在当用户输入时,常常需要把相近的信息提示给用户,以方便用户选择。
总体的思路是:
在txt文本框的onkeyup事件中,发送ajax请求,到数据库去取相似的记录,把得到的结果构成字符串传到前台,再在前台里拆分来按要求显示。
ajax请求到后台取数据的代码忽略,只取js前台的代码:

var eventElement;
  function inputSuggest() {   
  	eventElement = event.srcElement || event.target;
  	var eventEleValue = eventElement.value;
  	if(eventEleValue){
		var url = urlPrefix + "/jsp/vou_record_mgr/getLinkBrandAndModel.do";
		pars = "EventEleValue="+encodeURIComponent(encodeURIComponent(eventEleValue));
		new Ajax.Request(
			url,		
			{	parameters: pars,
				method:"get",
				onCreate:function(){
				},
				onComplete:function(originalRequest){
					//alert(originalRequest.responseText);
					if(originalRequest.responseText.indexOf("#")==-1){
						if($("reslut_div")) {
							$("reslut_div").innerHTML = '';
	 						$("reslut_div").style.display = 'none';
							return;
						}
					}
					var str = originalRequest.responseText.split("#");   
					var suggestStr = "<table width=\"100%\" border=\"1\" cellpadding=\"1\" cellspacing=\"1\">";
			        for(i=0; i < str.length - 1; i++) {   
			           suggestStr += '<tr><td onmouseover="onmouseOver(this);" onmouseout="onmousetOut(this);" onclick="setSuggestValue(this.innerHTML);" class="onmouset_out">' + str[i] + '</td></tr>';   
			        }
			        suggestStr += "</table>";
			        //先清空
			        if($("reslut_div")) {
			        	$("reslut_div").innerHTML = '';;
			        }	
					if(!$("reslut_div")){
						var res_div = document.createElement('div');
						res_div.id = "reslut_div";
					}else{
						res_div = $("reslut_div");
					}	
					res_div.innerHTML = suggestStr;
					res_div.style.background = '#99CCFF';
					res_div.style.position='absolute';
					res_div.style.left=frontShowMgr.getxy(eventElement).X+'px';
					res_div.style.top=frontShowMgr.getxy(eventElement).Y+eventElement.clientHeight+'px';
					res_div.style.width = eventElement.clientWidth +'px';
					res_div.style.height = 150 +'px';
					res_div.style.overflow  = 'scroll';
					res_div.style.border = '1px';
					if(!$("reslut_div")){
						document.body.appendChild(res_div);
					}
					res_div.style.display = '';
				}
			}
		);
  	}
  }   
  function onmouseOver(div) {   
  	div.style.background = '#FFDEAD';
  	div.style.cursor = 'hand';
  }   
  function onmousetOut(div) {   
  	div.style.background = '#99CCFF';
  	div.style.cursor = 'auto';  	
  }   
  function setSuggestValue(value) {   
	eventElement.value = value;   
	if($("reslut_div")) {
		$("reslut_div").innerHTML = '';
		$("reslut_div").style.display = 'none';
		return;
	}
  }   

 以下注意的几个知识点是:

1.当要动态的需要在前台展示一些东西的时候,常常的思路就是:

先document.createElement('div'),设置这个元素innerHTML和属性,最后document.body.appendChild()。

注意的是,有时候我们利用document中已存在的div来进行appendChild(),但如果没有这个已存在的div也没有必要写一个,只需要用document.body就可以了。因为有时候这个联动的下拉框可能做为一个jsp供其它人直接引用,如果你在jsp里create了div,引用多个这个jsp就会出现多个这样的div,这样就会有问题了。

2.用event.srcElement || event.target来获得事件触发对象。

3.用encodeURIComponent(encodeURIComponent(eventEleValue))来进行对汉字的url编码传递
3.样式方面:
设置元素的height为固定值且设置overflow,使得可以拖动滚动条。
元素的clientWidth为元素的宽度,而不是想当然的width或是style.width
把table的td的值赋给txt,用this.innerHTML来赋值过去

设置元素的position为absolute,设置元素的left,top为event元素的x,y值

	getxy:function(e){
	 	var x = 0;
	 	var y = 0;
	 	while(e){
	 		x += e.offsetLeft;
	 		y += e.offsetTop;
	 		e = e.offsetParent;
	 	}
	 	return {X:x,Y:y}
	 },

 最终的效果如下:

 

  • 大小: 3.9 KB
分享到:
评论

相关推荐

    JavaFx实现百度文本框的下拉提示功能

    在JavaFX中,实现百度文本框的下拉提示功能,主要涉及到的是文本输入与实时匹配的概念,这在很多用户界面中都有广泛的应用,如搜索引擎、输入法等。这个功能能够提高用户体验,帮助用户快速找到他们可能正在寻找的...

    javascript 文本框下拉提示与cookie应用实例

    在JavaScript编程中,文本框(input type="text")下拉提示是一种常见的用户交互设计,它可以帮助用户在输入时快速选择或参考预设的选项。在这个实例中,我们结合了JavaScript和Cookie技术来实现这一功能。 首先,...

    自定义 wpf 文本框输入自动下拉提示控件,可以设置延迟时间,输入字符长度来查询

    在本文中,我们将深入探讨如何创建一个自定义的 WPF(Windows Presentation Foundation)文本框控件,该控件具有自动下拉提示功能。这个控件允许用户在输入时进行模糊查询,并可以根据预设的延迟时间和输入字符长度...

    C#文本框输入提示功能 下拉框

    "C#文本框输入提示功能 下拉框"这个主题就涉及到如何在文本框中实现智能提示和下拉列表的选择功能。 1. **文本框输入提示功能**: 这个功能通常指的是文本框的水印效果,即当文本框为空时显示一段提示文字,一旦...

    WPF 文本框提示信息

    在传统的文本框设计中,水印效果是指在文本框为空时显示的一段提示文字,当用户开始输入时,这些文字会自动消失。在WPF中,虽然没有内置的Watermark属性,但可以通过自定义控件或者使用第三方库来实现。一种常见的...

    JavaScript 文本框下拉自动补全提示

    JavaScript文本框下拉自动补全提示是一种常见的交互设计,它极大地提升了用户在输入时的效率和体验。在网页开发中,这种功能常用于搜索框、表单输入等场景,允许用户在输入过程中根据已有的数据集获取匹配的建议,...

    输入框下拉提示插件

    在IT行业中,输入框下拉提示插件是一种常见的交互元素,广泛应用于网页表单和搜索功能,以提高用户体验。这种插件允许用户在输入时自动显示与输入内容相匹配的建议选项,通常基于预设的数据集或者通过实时查询服务器...

    JavaScript 文本框下拉提示(自动提示)

    JavaScript 文本框下拉提示,通常被称为自动补全或自动提示功能,是许多网页和应用程序中常见的一种交互设计。这种技术允许用户在输入文本时,系统根据已输入的部分内容提供匹配建议,从而提高输入效率和用户体验。...

    文本框输入值时过滤显示下拉选项

    在IT行业中,文本框输入值时过滤显示下拉选项是一种常见的交互设计,它极大地提高了用户在数据选择上的效率。这种功能通常应用于各种Web应用、桌面软件或者移动应用中,允许用户在输入时实时查看与输入内容相关的...

    精美表单样式(下拉菜单/文本框/复选框)

    本文将详细探讨“精美表单样式”中的关键元素:下拉菜单、文本框和复选框,以及如何利用这些元素创建高效且吸引人的网页表单。 首先,下拉菜单是一种节省空间且用户友好的交互方式,常用于提供多个选项供用户选择。...

    文本框下拉列表值自动提示效果

    文本框下拉列表自动提示效果,用户在输入一个或多个值会自动提示数据库里面的值 RecommResource.aspx和RecommResource.aspx.cs文件是可以动态生成JS文件,另外外部还有一个JS

    winForm 文本框检索功能

    在Windows Forms(winForm)开发中,我们经常需要创建具有智能提示或检索功能的文本框,这能够提高用户的输入效率并提供更好的用户体验。这个“winForm 文本框检索功能”项目,显然旨在实现一个类似百度搜索框的效果...

    java文本框自动提示

    - **下拉列表**:可以使用`JComboBox`或者自定义组件,将匹配到的选项以下拉列表的形式展示在文本框下方。当用户继续输入时,列表会实时更新。 - **气泡提示**:另一种常见方式是使用`JOptionPane`或者自定义的...

    Flex文本框自动提示源码

     在文本框中输入文字时,在数据源(所有的提示项)查找匹配的选项,若匹配的选项数量&gt;0,在文本框下方显示下拉列表供用户选择; 自动补全:  在匹配的选项中选择最合适的一项(通常为第一项),与用户输入做对比,...

    文本框下拉自动选择功能例子autocomplete

    文本框下拉自动选择功能,通常被称为Autocomplete或者Auto-suggestion,是许多现代网页和应用程序中常见的一种交互设计。这个功能极大地提升了用户输入的效率,因为它可以在用户输入时实时显示可能的匹配项,用户只...

    jquery输入框下拉提示插件.rar

    jquery输入框下拉提示插件,,Select风格的下拉提示,鼠标只需点击文本框后,即可下拉出相关内容项,和搜索提示类似,基于jQuery的输入框提示功能,测试发现jQuery对这款插件的精确匹配不是太好,有时候会提示一些不...

    jQuery文本框输入自动提示,类似百度搜索效果

    1. **HTML 结构**:首先,我们需要创建一个文本框和一个用于显示提示结果的下拉列表。HTML 代码如下: ```html 请输入关键词"&gt; ;"&gt; ``` 2. **jQuery 事件绑定**:接下来,我们需要使用 jQuery 的 `keyup` 事件来...

    前台实现文本框中c#关键字变色及提示

    关键字提示功能则可能通过一个下拉列表或者弹出框的形式出现,当用户在文本框中输入时,系统会根据已输入的字符提供相关的C#关键字建议。这通常涉及到自动补全算法,它可以基于用户的输入预测并显示可能的完成项。...

    asp.net文本框下拉列表批量删除

    在ASP.NET开发中,"asp.net文本框下拉列表批量删除"是一个常见的需求,尤其是在处理大量数据时。这个功能允许用户通过输入关键词进行搜索,并一次性删除满足条件的多项选择。在本场景中,jQuery库被用来增强前端交互...

    Flex文本框自动提示

    Flex文本框自动提示技术是基于Adobe Flex框架的一种用户体验优化功能,它允许用户在输入文本时获得即时的下拉建议或提示。这种功能在各种应用程序中非常常见,如搜索引擎、在线表单和数据输入界面,可以显著提高用户...

Global site tag (gtag.js) - Google Analytics