input+div 实现输入拼音首字母或汉字自动检索下拉列表

6 篇文章 0 订阅
6 篇文章 0 订阅
[b]1.页面代码:[/b]
[quote]<td>
<input class="input_brand" type="text" id="suggest13" οnkeyup="doViewBrand()" οnfοcus="doViewBrand()" value="" size="30" autocomplete="off"/>
<input type="hidden" id="brandId" name="product.prodBrandId" value=""/>
<input type="hidden" id="brandName" name="product.prodBrandName" value=""/>
<div id="inputBrand" class="selSearch" onMouseOut="d_1(this,event)"></div>
</td>

[/quote]
[b]2.js 移开事件(onMouseOut)[/b]
[quote]<script type="text/javascript">
function d_1(obj,e){
var e = window.event || e, relatedTarget = e.toElement || e.relatedTarget;
while(relatedTarget && relatedTarget != obj)
relatedTarget = relatedTarget.parentNode;
if(!relatedTarget){
inputBrand.style.display="none";
showAllSelect();
}
}


//输入input时调用ajax 读取下拉数据列表
function doViewBrand(){
var send_mini=$("#inputBrand");
$.ajaxSetup({async:false}); //设置ajax 异步
$.ajax({
type: "post",
url: "/product/getBrandByInput.action",
data: "brand.name=" + $("#suggest13").val(),
success: function(msg){
send_mini.empty();
send_mini.append(msg);
}
});
$.ajaxSetup({async:true}); //设置ajax 同步
inputBrand.style.display="block";
hideAllSelect();
}


//显示select下拉 IE6 下弹出层上显示下拉问题
function showAllSelect(){
var selects=document.getElementsByTagName("SELECT");
for(var i=0;i <selects.length;i++){selects[i].style.visibility="visible";}
}

//隐藏select下拉 IE6 下弹出层上显示下拉问题
function hideAllSelect(){
var selects=document.getElementsByTagName("SELECT");
for(var i=0;i <selects.length;i++){selects[i].style.visibility="hidden";}
}


function doClick(paramId,ParamName){
if(paramId !=""){
$("#suggest13").val(ParamName);
$("#brandId").val(paramId);
$("#brandName").val(ParamName);

}else{
$("#suggest13").val("");
$("#brandId").val("");
$("#brandName").val("");
}
inputBrand.style.display="none";
showAllSelect();
}

function doOnMouseOut(){
inputBrand.style.display="none";
showAllSelect();
}
</script>[/quote]


[b]3.下拉显示内容[/b]
[quote]<ul id="show" class="selOption" >
<#if brands?? && brands?size gt 0>
<#list brands?if_exists as brand>
<li οnclick="doClick('${(brand.id)!}','${(brand.name)!}')" onMouseOver="this.className='s1'" onMouseOut="this.className='s2'">${(brand.name)}</li>
</#list>
<#else>
<li οnclick="doClick('','')" onMouseOver="this.className='s1'">无记录</li>
</#if>
</ul>[/quote]

[b]4. css[/b]
[quote]#input_brand{
background:#F2F1D7;
border:0px solid #000000;
display:none;overflow:hidden
}
#show li.s1{ border:1px solid #ff9900; background:#EFEFDA;}

.selSearch{float:left;background:#fff;border:1px;border-left:0;overflow:auto;display:none}
.selOption{z-index:9999;position:absolute;margin-left:0px;top:227px;width:185px;
background:#fff;border:1px solid #3e99d4;overflow:auto; height :150px;
line-height:14px;}[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值