jquery 添加关键字小插件
模块化封装,兼容seajs
/**
* User: c3t
* Date: 14-3-25
* Time: 下午4:16
*/ define(function (require, exports, module) {
return function (jQuery) {
(function ($) {
var setting = null;
$.fn.keywordInput = function (opts) {
setting = $.extend({
number: 5, //关键字数量限定
msg: "请输入关键字,通过逗号或者回车确认"
}, opts || {});
init(this);
this.keyup(inputKeywords);
//通过事件委派。对新加入的标签添加事件
$("#keywords-wrap").on("click", ".keyword-shut", function (event) {
$(this).parent(".keyword-in").remove();
event.preventDefault();
}); };
function init(input) {
$(input).val(setting.msg);
$(input).addClass("keyword-input");
$(input).wrap("<div id='keyword-container'></div>").before("<div id='keywords-wrap'></div>"); $(input).focus(function () {
$(this).val("");
}); $(input).blur(function () {
$(this).val(setting.msg);
});
} function inputKeywords(event) {
var code = event.keyCode;
if (code == 188 || code == 13) {
var c = $(this).val();
if(c!="") {
if($(".keyword-in").length >=setting.number){
alert("最多只能允许添加"+setting.number+"个关键字");
event.preventDefault();
return false;
}
//防止关键字重复
var aks = $("input[name='aks']");
for(var i=0;i<aks.length;i++) {
if($(aks[i]).val()==c) {
alert("不能添加重复的关键字");
event.preventDefault();
return false;
}
} var ki = createKeyWord(c);
$('#keywords-wrap').append(ki);
$(this).val("");
}
} } function createKeyWord(val) {
return "<div class='keyword-in'>"+
"<span>"+val+"</span>"+
"<a href='#' class='keyword-shut'>×</a>"+
"<input type='hidden' name='aks' value='"+val+"'/>"+
"</div>";
}
})(jQuery);
}
});
css 样式
#keyword-container {
border: 1px solid #bbb;
width: 300px;
} input.keyword-input {
border: none;
width: 300px;
color: #aaa;
height: 28px;
} .keyword-in {
float: left;
font-size: 12px;
margin: 3px;
background: #3fa7cb;
color: #fff;
} .keyword-shut:link, .keyword-shut:visited {
color: #fff;
text-decoration: none;
} a.keyword-shut:hover {
color: #ff0000;
}
页面
<input type="text" id="keyword-input" value=""/>
调用
$("#keyword-input").keywordInput();
jquery 添加关键字小插件的更多相关文章
- jquery TAB切换小插件
//tab切换 ;(function($, window, document, undefined) { $.fn.tab = function(options) { var defaults = { ...
- 闲聊select和input常用的小插件
前言 在pc端的项目中,经常会用到表单标签,莫过于是select和input这两种,这两种相当常用.但往往原生的功能不尽人意,即使 input中type有n多属性,甚至连时间控件都有,但仍旧满足不了我 ...
- Jquery 添加插件
原文:http://www.iteye.com/topic/545971 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法 ...
- 黑色半透明镂空遮罩指引效果实现jQuery小插件
/*! * by zhangxinxu(.com) 2017-05-18 * 新版上线时候的黑色半透明镂空遮罩指引效果实现jQuery小插件 * 兼容到IE8+ * MIT使用协议,使用时候保留版权 ...
- 基于HTML5 audio元素播放声音jQuery小插件
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1609 一.前面的些唠 ...
- jquery添加插件
转自:https://www.cnblogs.com/joey0210/p/3408349.html 前言 如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquer ...
- jQuery自定义滚动条样式插件mCustomScrollbar
如果你构建一个很有特色和创意的网页,那么肯定希望定义网页中的滚动条样式,这方面的 jQuery 插件比较不错的,有两个:jScrollPane 和 mCustomScrollbar. 关于 jScro ...
- 11个好用的jQuery拖拽拖放插件
这次我们整理一些拖拽播放类型的jQuery插件,这些可能不是很常用,但偶尔会有网站设计项目用到,特别是后台相关的开发项目,这个拖放排序功能一般都会有,所以适合大家收藏起来,方便日后使用.接下来一起看盾 ...
- jQuery提供的小方法
jQuery提供的小方法: 1.选择器 + 事件 + 函数 = 复杂的交互 2.循环处理与选择器匹配的各个元素:each() $("#").each(function(){ ...
随机推荐
- Eclipse操作技巧记录
工欲善其事,必先利其器.记录下自己使用的eclipse操作技巧 1.eclipse设置自动提示 window->preference->java->editor->conten ...
- Bitnami WordPress无法修改MySQL root的默认密码的解决方法?
今天准备修改Bitnami WordPress的MySQL root的默认密码,但是总是出现下面错误: ERROR 1045 (28000): Access denied for user 'root ...
- Linux环境下jdk、tomcat、redis安装及配置
环境说明: linux : centOS jdk : 1.8 tomcat : 8.5 redis : 4.0 jdk安装配置 1.下载jdk(这里下载的是jdk-8u181-linux-x64.ta ...
- FastDFS分布式⽂文件系统
FastDFS分布式⽂文件系统 1. 什么是FastDFS FastDFS 是⽤用 c 语⾔言编写的⼀一款开源的分布式⽂文件系统.FastDFS 为互联⽹网量量身定制, 充分考虑了了冗余备份.负载均 ...
- SDUT OJ 数据结构实验之链表四:有序链表的归并
数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...
- Django 内建 中间件组件
中间件 这篇文档介绍了Django自带的所有中间件组件. 要查看关于如何使用它们以及如何编写自己的中间件,请见中间件使用指导. 可用的中间件 缓存中间件 class UpdateCacheMiddle ...
- SVN:Access to 'xxx' forbidden
可以做以下尝试:
- asp web服务
项目名--->添加--->web引用 网址:http://www.webxml.com.cn/zh_cn/index.aspx https://blog.csdn.net/linshich ...
- Android 简单适配器(SimpleAdapter)
1.介绍 2.简单适配器的实现方法 3.XML文件 (1)主页面布局 <?xml version="1.0" encoding="utf-8"?> ...
- 报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出。网上查询了一些.NET 的C#例子,发现都实现的比较复杂
报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出.网上查询了一些.NET 的C#例子,发现都实现的比较复杂,其实这个问题可以很简单的通过.NET的DateTime函数来实现 ...