组合框查询mysql_自己写的select查询组合框

此篇博客介绍如何使用JavaScript初始化一个自定义下拉选择组件,当输入框查询时动态筛选选项,适用于多个ID的联动选择。通过split()函数处理传入的ID列表,并利用事件监听实现输入框内容触发的实时搜索功能。
摘要由CSDN通过智能技术生成
Document

aaa

bbb

ccc

dd

ccc

dd

aaa

function initSelectCombo(selectIds) {

alert(selectIds);

if (selectIds == null || selectIds == undefined) {

return;

}

var ids = selectIds.split(',');

for (i = 0; i < ids.length; i++) {

if (ids[i] == '') {

continue;

}

var curSel = document.getElementById(ids[i]);

var pnode = curSel.parentNode;

// 创建元素

var sdiv = document.createElement('div');

sdiv.style.display = 'inline';

sdiv.style.border = '0px';

sdiv.style.position = 'relative';

pnode.insertBefore(sdiv, curSel);

sdiv.appendChild(curSel);

var sinput = document.createElement('input');

sinput.style.display = 'none';

sinput.placeholder = '查询';

var idd = ids[i];

sinput.onkeyup = function () {

querySelect(this.previousSibling);

};

var sselect = document.createElement('select');

sselect.style.display = 'none';

sselect.style.position = 'absolute';

sselect.style.left = '0';

sdiv.appendChild(sinput);

sdiv.appendChild(sselect);

curSel.onclick = function () {

querySelect(this);

}

}

var querySelect = function (s) {

//alert(sid);

//var s = document.getElementById(sid);

var s1 = s.nextSibling;

var s2 = s1.nextSibling;

var vs = s1.value.toLowerCase();

if (!s.disabled) {

s1.style.width = s2.style.width = '120px';

s.style.display = 'none';

s1.style.display = 'inline';

s2.style.display = 'block';

var op = s.options;

s2.options.length = 0;

for (i = 0; i < op.length; i++) {

if (op[i].innerText.toLowerCase().indexOf(vs) > - 1) {

var e = document.createElement('option');

e.value = op[i].value;

e.innerText = op[i].innerText;

s2.appendChild(e);

}

}

s2.onchange = function () {

//alert("s1 change");

s1.style.display = 'none';

s2.style.display = 'none';

s.style.display = 'inline';

s.value = s2.value;

if (s.onchange != null && s.onchange != undefined) {

s.onchange();

}

}

s2.size = 10;

}

}

}

initSelectCombo('a1,a2,a3');

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2018-09-05 11:48

浏览 494

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值