`
78425665
  • 浏览: 123564 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

模仿QQ邮箱,邮箱地址输入框

 
阅读更多
加入我上一篇修改过的jQuery.autocomplete.js 和css

页面代码:
<div>
	<div class="divContainer" style="width: 100%;border: 1px solid #ddd;overflow: auto;">
		<span style="font-weight: bold;float: left;padding-top: 3px;">发送:</span> 
		<div style="margin: auto;padding-top: 0px;font-size: 13px;">
			<div userid="" class="divInput" style="cursor: hand; margin-left: 1px; margin-top: 1px; float: left;"></div>
			<input style="border: 0;width: 10px;" type="text" id="txtToUser" name="txtMail" class="autocomplete"/>
			<input type="hidden" name="hidToUser" id="hidToUser" />
		</div>
	</div>
	<div class="divContainer" style="width: 100%;border: 1px solid #ddd;margin-top: 2px;background: #ffffcc;overflow: auto;">
		<span style="font-weight: bold;float: left;padding-top: 3px;">抄送:</span> 
		<div style="margin: auto;padding-top: 0px;font-size: 13px;">
			<div userid="" class="divInput" style="cursor: hand; margin-left: 1px; margin-top: 1px; float: left;"></div>
			<input style="border: 0;width: 10px;background-color: #ffffcc;" id="txtCcUser" type="text" name="txtMail" class="autocomplete"/>
			<input type="hidden" name="hidCcUser" id="hidCcUser" />
		</div>
	</div>
<div>


JS代码:
	$(function(){
		bindAutoComplete();
	});
	var options = $.extend({}, $.Autocompleter.defaults, {
		minChars: 2,
		width: 400,
		autoFill: false,
		mustMatch: true,
		multipleSeparator: ",",
		onShow: function(element){
			if(!$.browser.msie){
				element.css("position", "absolute");
			}
		},
		parse: function(data){
			var parsed = [];
			var rows = data;
			for (var i=0; i < rows.length; i++) {
				var row = rows[i];
				if (row) {
					parsed[parsed.length] = {
						data: row,
						value: row.ID,
						result: this.formatResult(row)
					};
				}
			}
			return parsed;
		},
		formatItem: function(row, i, max) {
			return row.CNNAME + "&lt;" + row.ID + "&gt;";
		},
		formatResult: function(row) {
			return row.ID;
		}
	});
	function appendUser(element, data){
		var $t = $(element);
		var v = $t.next().val();
		if(data && v.indexOf(data.ID + options.multipleSeparator) == -1){
			var val = data.CNNAME + '&lt;' + data.ID + '&gt;';
			var container = $('<div userid=\"'+ data.ID +'\" class=\"divInput\" style=\"cursor:hand;margin-left:1px;margin-top:1px;float:left;\">');
			container.append(val + options.multipleSeparator);
			container.click(function(){
				if($(this).attr('selected')){
					$(this).css({background:''}).removeAttr('selected');
				}else{
					$('.divInput').filter('[selected]').css({background:''}).removeAttr('selected');
					$(this).css({background:'#ddd'}).attr('selected','true');
				}
			});
			$t.before(container);
			v += data.ID + options.multipleSeparator;
			$t.next().val(v);
		}
	}
	function removeUser(del){
		if(del){
			var userid = del.attr('userid');
			var $t = del.siblings(".autocomplete");
			var nv = $t.next().val();
			nv = nv.replace(userid + options.multipleSeparator, '');
			$t.next().val(nv);
			del.remove();
		}else{
			$('.divInput').each(function(){
				removeUser($(this));
			});
		}
	}
	function bindAutoComplete(){
		$(".autocomplete").autocomplete("/case/uioc/getRsmsAdGroup.shtml", options).result(function(e, data, value){
			appendUser(this, data);
			$(this).val('');
		});
		
		$('.divContainer').click(function(){
			$(this).find(':input.autocomplete').focus();
		});
		$(".autocomplete").keyup(function(){
			var $t = $(this);
			$t.css('width', ($t.val().length * 15) < 10 ? 10:($t.val().length * 15) + 'px');
			if((event.keyCode == 8 || event.keyCode == 46) && $t.val().length == 0){
				var del = $('.divInput').filter('[selected]');
				if(del.attr('userid')){
					removeUser(del);
				}else{
					del = $t.prev();
					del.css({background:'#ddd'}).attr('selected','true');
				}
			}else{
				var del = $('.divInput').filter('[selected]');
				if(del.attr('userid')){
					del.css({background:''}).removeAttr('selected');
				}
			}
		});
	}
分享到:
评论

相关推荐

    Vue实现简易邮箱输入验证

    本文中的代码将使用自定义全局组件,emit派发以及正则来实现一个简易的邮箱输入验证功能,用以验证邮箱地址格式是否正确,如果正确则在输入框的后方同步显示true,如果错误则显示false。 邮箱地址我们规定为: 前缀...

    Ajax 模仿google百度提示输入框 v1.8

    Ajax模仿google提示输入框 使用说明 v1.8 本程序由飞飞asp乐园编写 ************************************************* 特别感谢: 一杯白开水 网友 的帮助 版本所提的修改建议 *********************************...

    飞飞Ajax模仿google提示输入框源码 v1.7

    飞飞Ajax模仿google提示输入框 使用说明 v1.7本程序由飞飞asp乐园编写*************************************************特别感谢: 一杯白开水 网友 的帮助 版本所提的修改建议**********************************...

    vc++ 应用源码包_1

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    vc++ 应用源码包_2

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    vc++ 应用源码包_6

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    vc++ 应用源码包_5

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    vc++ 应用源码包_3

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    vc++ 开发实例源码包

    ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_Combo_Box_demo 自绘Combox控件的实例。 SkinList_...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目源代码

    Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...

Global site tag (gtag.js) - Google Analytics