前端代码+jquery实现类似于关键字添加的实例

(1)实现内容:输入框中,当用户输入关键字时,会自动在输入框上面呈现,这是一种动态的方式,并且用户点击删除按钮时,是可以进行删除操作的,这里用的的技术有css+jquery+js的事件委派

(2)代码实现

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="./jquery-1.7.2.min.js"></script>
<script type="text/javascript">
	$(function(){
		var num = 5;
		$("#keyword-input").focus(function() {
			$(this).val("");
		});
		$("#keyword-input").blur(function() {
			$(this).val("请输入关键字,通过逗号或者回车确认");
		});
		$("#keyword-input").keyup(function(event) {
			var code = event.keyCode;
			if(code==188||code==13) {
				var c = $(this).val();
				if(c!="") {
					if($(".keyword-in").length>=num) {
						alert("最多只能允许添加"+num+"个关键字");
						event.preventDefault();
						return;
					}
					
					/*主要是用来对输入的内容进行获取,判断是否有重复输入,如果有重复输入则不显示*/
					var aks = $("input[name='aks']");
					for(var i=0;i<aks.length;i++) {
						if($(aks[i]).val()==c); {//$(aks[i]) DOM对象
							alert("不能添加重复关键字");
							event.preventDefault();
							return;
						}
					}
					
					/*主要是用来对输入的内容进行获取,判断是否有重复输入,如果有重复输入则不显示*/
			/*		$("input[name='aks']").each(function() {
						//alert($(this).val());
						if($(this).val()==c); {
							alert("不能添加重复关键字");
							event.preventDefault();//本实例阻止不起作用,因为在闭包中
							return;
						}
					});
					*/
					var ki = createKeyword(c);
					$("#keywords-wrap").append(ki);
					$(this).val("");
				}
			}
		});
	/*	
		//此处为什么不使用.keyword-shut?因为直接操作<a></a>对上面动态新加入的html不会起作用,只对原有写死的有效果。所以需要使用js的事件委派on或off
		$(".keyword-shut").click(function() {
		})*/
		$("#keywords-wrap").on("click","a.keyword-shut",function(event) {//on参数,第一个是事件,第二个是选择器,也就是在keywords-wrap上委派一个click事件,委派给keyword-shut
//			alert(event.type);
			$(this).parent("div.keyword-in").remove();
			//return false;这种截止可以,或者使用event.preventDefault();
			event.preventDefault();
		});
		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>";
		}
	})
</script>
<style type="text/css">
	#keyword-container {
		border:1px solid #bbb;
		width:300px;
	}
	#keyword-input {
		border:none;
		width:300px;
		color:#aaa;
		height:28px;
		line-height:30px;
	}
	div.keyword-in {
		float:left;
		font-size:12px;
		margin:3 3px;
		background:#3fa7cb;
		padding:3px;
		color:#fff;
	}
	
	a.keyword-shut:link,a.keyword-shut:visited {
		margin-left:3px;
		color:#fff;
		text-decoration:none;
	}
	a.keyword-shut:hover {
		color:#732;
	}
</style>
</head>
<body>
	<div id="keyword-container">
		<div id="keywords-wrap">
		<!-- 注释部分是用来测试的 -->
<!-- 			<div class="keyword-in">
				<span>我的电脑1</span>
				<a href="#" class="keyword-shut">×</a>
				<input type="hidden" name="aks" value="我的电脑1"/>
			</div>
			<div class="keyword-in">
				<span>我的电脑2</span>
				<a href="#" class="keyword-shut">×</a>
				<input type="hidden" name="aks" value="我的电脑2"/>
			</div>
			<div class="keyword-in">
				<span>我的电脑3</span>
				<a href="#" class="keyword-shut">×</a>
				<input type="hidden" name="aks" value="我的电脑3"/>
			</div>-->
		</div>
		<input type="text" id="keyword-input" value="请输入关键字,通过逗号或者回车确认">
	</div>
</body>
</html>
(3)效果图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值