可以輸入的下拉框,可以篩選內容,可輸入篩選下拉框(原創)

可以輸入的下拉框,可以篩選內容,可輸入篩選下拉框(原創)

因項目需要,需要在搜索的時候,在下拉框裏需要手動輸入,還要根據輸入的 自動在列表裏篩選,代碼貼上來了



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
</head>
<body>


<style type="text/css">
.newinput{ width:150px;padding: 2px 0px 2px 0px; margin-bottom: -1px; background: url(114755leueqeys1ps8dtzy.jpg.thumb.jpg) no-repeat scroll right center; border: 1px solid #ccc; box-shadow: 0 1px 0 0 #eee inset; cursor: default;}
.newinput:focus{cursor: text;}
.input_div{ width:150px;border: 1px solid #ddd; border-radius: 0 0 3px 3px; display: none;}
.soption{display: block; padding: 2px 5px;}
.soption:hover{background: #f9f9f9; border-top: 1px dotted #ddd; border-bottom: 1px dotted #ddd; padding: 1px 5px;}
</style>


<div class="pre" id="input1">
	<input class="newinput" type="text" placeholder="--請選擇1--">
	<div class="input_div" style="display: none;">
		<span class="soption" data-val="1">01</span>
		<span class="soption" data-val="2">02</span>
		<span class="soption" data-val="3">03</span>
		<span class="soption" data-val="4">04</span>
		<span class="soption" data-val="5">05</span>
		<span class="soption" data-val="6">06</span>
		<span class="soption" data-val="10">101</span>
		<span class="soption" data-val="20">102</span>
		<span class="soption" data-val="30">103</span>
		<span class="soption" data-val="40">104</span>
		<span class="soption" data-val="50">105</span>
		<span class="soption" data-val="60">106</span>
	</div>
	<input class="savedata" type="hidden" value=''>
	<div style="clear:both"></div>
</div>
<div class="pre" id="input2">
	<input class="newinput" type="text" placeholder="--請選擇2--">
	<div class="input_div" style="display: none;">
		<span class="soption" data-val="1">01</span>
		<span class="soption" data-val="2">02</span>
		<span class="soption" data-val="3">03</span>
		<span class="soption" data-val="4">04</span>
		<span class="soption" data-val="5">05</span>
		<span class="soption" data-val="6">06</span>
		<span class="soption" data-val="10">101</span>
		<span class="soption" data-val="20">102</span>
		<span class="soption" data-val="30">103</span>
		<span class="soption" data-val="40">104</span>
		<span class="soption" data-val="50">105</span>
		<span class="soption" data-val="60">106</span>
	</div>
	<input class="savedata" type="hidden" value=''>
	<div style="clear:both"></div>
</div>




<script type="text/javascript">
function inputSelect(div_id,saveval_id){
	this.input_id=$("#"+div_id+' .newinput');
	this.input_div=$("#"+div_id+' .input_div');
	this.input_id.focus(function(){
		$("#"+div_id+' .input_div').show();
	});
	this.input_id.keyup(function(){
		var st = $(this).val().trim();
		var _this=this;
		if(st == ''){
			$("span",$("#"+div_id+' .input_div')).show();
			$("#"+div_id+' .input_div').show();
			var selval=0;
			$(".savedata",$("#"+div_id)).val(selval);
			return false;
		}
		var L = $("span",$("#"+div_id+' .input_div')).size();
		for(var i = 0; i < L; i ++){
			var elem=$("span",$("#"+div_id+' .input_div')).eq(i);
			var html = $("span",$("#"+div_id+' .input_div')).eq(i).html();
			if(html.match(st)){
				elem.show();
			}
			else{
				elem.hide();
			}
		}
		var selval=-1;
		if($("span:visible",$("#"+div_id+' .input_div')).length==1 || $("span:visible",$("#"+div_id+' .input_div')).eq(0).html()==st){
			selval= $("span:visible",$("#"+div_id+' .input_div')).eq(0).attr('data-val');
		}
		else{
			selval=99999;
		}
		$(".savedata",$("#"+div_id)).val(selval);
		$("#"+div_id+' .input_div').show();
	});
	this.input_id.blur(function(){
		$("#"+div_id+' .input_div').slideUp(50);
	});
	$("span",$("#"+div_id+' .input_div')).mousedown(function(){
		var val = $(this).data('val');
		$("#"+div_id+' .newinput').val($(this).html());
		$(".savedata",$("#"+div_id)).val(val);
	})
}
new inputSelect("input1","txt1");
new inputSelect("input2","txt2");
</script>


</body>
</html>

其中用到了一張小的背景圖,我直接用附件上傳!
圖片:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章