select的可输入 婚配
<div id = "click" ><input type="text" style="display: block;" name ="inputusername" id = "inputusername" onFocus="showselect()" onKeyUp="SelectTip(0)">
<select id = "username" style="display: none; float: left; position: absolute;" size = 10 onChange="setinputvalue()">
<option value = "select">请选择姓名</option>
</select>
</div>
/*显示select*/
function showselect(){
$("#username").css("display" ,"block");
$("#username").width($("#inputusername").width());
}
/*隐藏option*/
function hiddenselect(){
$("#username").css("display" ,"none");
}
/*点击select 时 将select的值在input中显示*/
function setinputvalue(){
//alert($("#username").val());
$("#inputusername").val($("#username").val());
hiddenselect();
}
var TempArr=new Array();//存贮option
function Init(){//获取所有options 将TempArr放入数组
$("#username option").each(function(){
TempArr.push($(this).val());
});
}
/*keyup事件调用 该方法,释放键盘按钮时 清空所有option 读取input内的值 与数组TempArr进行匹配
返回值大于-1时 在select 中追加option
*/
function SelectTip(flag){
var TxtObj=$("#inputusername");
var SelectObj=$("#username");
var Arr=new Array();
var match = /$("#username").val()/;
SelectObj.html("");
$.each(TempArr,function(index,element){
//alert(element);
console.info($("#inputusername").val());
console.info(element);
var result = element.indexOf($("#inputusername").val());
console.info(result);
if(result>-1){
SelectObj.append("<option value = '"+element+"'>"+element+"</option>");
}
});
}
/*在div之外的位置点击时隐藏select 在div内点击时 阻止事件上传到body */
$("#click").click(function(event){
event=event||window.event;
event.stopPropagation(); //阻止事件冒泡
});
$(document).ready(function(){
Init();
/* 设置select 位置*/
var pos = $("#inputusername").position();
var height = $("#inputusername").height();
pos.top = pos.top+height;
$("#username").position(pos);
});