加入我上一篇修改过的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 + "<" + row.ID + ">";
},
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 + '<' + data.ID + '>';
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');
}
}
});
}
分享到:
相关推荐
在Android平台上,开发一款仿QQ邮箱的客户端是一项挑战性的工作,因为它涉及到许多核心技术和组件的集成。本项目源码提供了一个简单的实现,旨在帮助开发者理解Android应用的基本架构和QQ邮箱的相关功能实现。以下是...
本文中的代码将使用自定义全局组件,emit派发以及正则来实现一个简易的邮箱输入验证功能,用以验证邮箱地址格式是否正确,如果正确则在输入框的后方同步显示true,如果错误则显示false。 邮箱地址我们规定为: 前缀...
这种设计模仿了QQ邮箱在选择收件人时的交互方式,允许用户方便地添加、编辑和管理多个收件人地址。在实现这样一个功能时,通常会涉及到以下技术知识点: 1. **前端框架与库**: - **jQuery**:压缩包中的`jquery-...
本项目“Swing模仿QQ登录界面”旨在通过Swing库来构建一个与QQ登录界面类似的交互式窗口。 在Swing中,我们首先需要了解几个核心概念: 1. **JFrame**: JFrame是所有Swing应用的基础,它代表了窗口。在模仿QQ登录...
这个项目旨在模仿QQ邮箱的用户界面和功能,提供类似于原版QQ邮箱的应用体验。它涵盖了登录注册、邮件收发、邮件管理、通知提醒等基础功能,同时也可能涉及到了一些高级特性,如附件处理、搜索过滤等。 1. **登录...
在IT行业中,模仿QQ实现功能是一项常见的练习,旨在学习和理解流行社交应用的工作原理,并提升自己的编程技能。在这个项目中,我们关注的核心知识点是使用SharedPreferences实现登录时的记住账号密码功能,以及通过...
Ajax模仿google提示输入框 使用说明 v1.8 本程序由飞飞asp乐园编写 ************************************************* 特别感谢: 一杯白开水 网友 的帮助 版本所提的修改建议 *********************************...
在本文中,我们将深入探讨如何模仿QQ登录的登录对话框,包括实现登录框的基本功能、按钮交互以及声音效果,以及服务器选择的相关技术。QQ作为中国最受欢迎的即时通讯软件之一,其登录界面的设计和功能对用户体验至关...
在HTML部分,你需要了解如何构建一个有效的网页结构,包括定义各个元素(如表单、按钮、输入框等)并使用正确的语义标签,如`<form>`、`<input>`和`<button>`。同时,要掌握如何使用`id`和`class`属性来选中特定的...
本项目“JQ 完美仿qq邮件功能”旨在利用jQuery技术来模仿QQ邮箱中的收件人添加功能,为用户提供便捷的输入体验。 首先,让我们深入了解一下这个功能的核心知识点: 1. **jQuery选择器**:jQuery提供了丰富的选择器...
在Android应用开发中,创建一个类似老版QQ登录界面的用户体验是常见的需求,尤其是在学习或模仿知名应用的设计时。这个项目主要关注的是界面布局,即XML文件的编写,以实现与旧版QQ登录界面类似的视觉效果。下面我们...
1. 用户界面设计:登录界面应简洁明了,包含用户名/手机号/邮箱输入框、密码输入框、记住密码选项、忘记密码链接以及登录按钮。为了增强用户体验,可以添加快捷登录方式,如微信、QQ账号一键登录,或者手机号短信...
总结,模仿QQ登录界面创建登录框,涉及到UI设计、Windows桌面应用开发、用户交互逻辑实现等多个方面的知识。通过这个项目,开发者可以提升自己在用户界面设计、事件驱动编程以及数据存储与安全等方面的能力。
【QQ模仿界面1111.rar】是一个包含源码的压缩包,主要目的是为了实现一个模仿QQ邮箱登录界面的应用,该应用设计上考虑了自适应性,能够良好地在手机端和Web端运行。这个项目对于学习前端开发,尤其是用户界面设计和...
1. 在线状态:模仿QQ的在线、离线、隐身等状态,需要在客户端维护用户状态,并同步到服务器。 2. 好友列表:获取和显示好友列表,包括好友的昵称、头像等信息。这部分同样需要与服务器进行数据交换。 3. 联系人...
易语言POST注册QQ源码是一种使用易语言编程实现的QQ注册功能代码,它利用了...然而,需要注意的是,直接使用或模仿这样的源码可能会涉及到侵犯腾讯的用户协议,因此在实际应用中需要遵守相关法律法规,确保合法合规。
- 自定义按钮:可考虑添加模仿现有QQ客户端中的特色按钮,以增强用户体验; - 菜单设计:在主面板上设置了三个主要菜单:“我的好友”、“我的Q群”和“MyShow”,方便用户快速访问相关功能; - 修改个性签名:...
飞飞Ajax模仿google提示输入框 使用说明 v1.7本程序由飞飞asp乐园编写*************************************************特别感谢: 一杯白开水 网友 的帮助 版本所提的修改建议**********************************...
这个项目旨在模仿腾讯QQ的聊天功能,提供一个在线交流的平台。在B/S架构中,即浏览器/服务器模式,用户通过网页浏览器访问服务器上的应用程序,实现了客户端与服务器端的交互,减少了对本地资源的依赖。 ### 前台...
6. **主题和样式**:为了模仿QQ和微信的风格,开发者会定制应用程序的主题和样式,包括颜色、字体、边距等,这需要对`styles.xml`和`colors.xml`等资源文件有深入理解。 7. **响应式设计**:考虑到Android设备的...