效果如下:1.当输入公司部分名称是,模糊查询显示10项;
2.当公司选定后,即显示当前公司名下的站点
如果这是你想要或相近的效果,请继续。
先上html,主要是公司和站点部分:
<div class="main_in_search_item">
<div class="main_in_search_item_text">公司:</div>
<input class="main_in_search_input_text" id="chooseCompany" name="chooseCompany" οnkeyup="showCompany();" />
<div class="chooseCompanySelect" id="chooseCompanySelect" ></div>
<input type="hidden" id="hiddeninput"/>
</div>
<div class="main_in_search_item">
<div class="main_in_search_item_text">站点:</div>
<input class="main_in_search_input_text" id="chooseNDID" name="chooseCompany" οnclick="showNDID();"/>
<div class="chooseCompanySelect" id="chooseNDIDSelect" ></div>
<input type="hidden" id="hiddeninputNDID"/>
</div>为了达到下拉框的效果,class="chooseCompanySelect"样式为:
.chooseCompanySelect{
background: rgba(225,225,225,0.9);
border: 1px solid #ccc;
box-shadow: 1px 1px 3px #ededed;
display: none;
position: absolute;
width: 223.22px;
z-index: 1;
margin-left: 41%;
display: none;
}当鼠标悬浮下拉选项,添加背景色:
.chooseCompanySelect ul li:hover{
background:#0099ff;
}接下来是js函数:当输入公司名称时,触发onkeyup事件:
function showCompany(){//展示公司下拉框
$('#chooseCompanySelect').empty();//清空下拉框
var name=$('#chooseCompany').val();
if(!name){
return;
}
var url='./?m=ajax&a=queryCompany&Name='+name;
$.getJSON(url,function (data) {
var company=data;
var item='<ul>';
//公司下拉赋值
for(var i=0;i<company.length;i++){
item+= '<li value='+company[i]['CPID']+'>'+company[i]['Name']+'(余额:'+company[i]['Money_CPID']+')</li>';
}
item+='</ul>';
$('#chooseCompanySelect').append(item);
$('#chooseCompanySelect').show();
});
}选中公司下拉框选项后,触发下拉框选项单击事件,因为下拉选项是页面加载后添加的元素,属于未来元素,需要通过‘on’委托事件:
$('body').on('click','#chooseCompanySelect ul li',function () {
var allhtml=$(this).html();
var arr=allhtml.split('(');
var company=arr[0];
var money=arr[1].split(')')[0];
money=money.split('余额:')[1];
$('#hiddeninput').val($(this).attr('value'));//将cpid赋给隐藏框,为查询站点提供参数
$('#cpidmoney').val(money);//money金额赋值隐藏框
var cpid =$(this).attr('value');
$('#chooseCompany').val(company);//赋值给公司input
$('#chooseCompanySelect').hide();
showNDID();//查询站点
});function showNDID(){//展示站点下拉框
$('#chooseNDIDSelect').empty();
var cpid=$('#hiddeninput').val();
var url='./?m=ajax&a=queryNDID&CPID='+cpid;
$.getJSON(url,function (data) {
var ndids=data;
var itemndid='<ul>';
//站点下拉赋值
for(var i=0;i<ndids.length;i++){
itemndid+='<li value='+ndids[i]['ID']+'>'+ndids[i]['Name']+'</li>';
}
itemndid+='</ul>';
$('#chooseNDIDSelect').append(itemndid);
$('#chooseNDIDSelect').show();
});
}同公司下拉框选项一样,绑定未来事件:
$('body').on('click','#chooseNDIDSelect ul li',function () {
var name=$(this).html();
$('#hiddeninputndid').val($(this).attr('value'));//将ndid赋给隐藏框
$('#chooseNDID').val(name);//赋值给站点input
$('#chooseNDIDSelect').hide();
});如果站点选择后,想要更换,可为站点input框添加一个单击事件
οnclick="showNDID();"
这样,基本功能就完成了,谢指教。
版权声明:本文为zxj201611原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。