自动完成以选择JavaScript中的选项
auto complete to select option in javascript
我正在尝试根据用户的输入自动完成以选择选项
类似的东西
<input type=text onkeyup=findit()>
<select id="sel">
<option value="s0001">Adams</option>
<option value="s0002">Alder</option>
.
.
.
<select>
我找到了这段代码,但它仅适用于页面中的一个选择(我需要多选)
<html>
<head>
<script type="text/javascript">
//initialize some global variables
var list = null;
function fillit(sel,fld) {
var field = document.getElementById("entry");
var selobj = document.getElementById("sel");
if(!list)
{
var len = selobj.options.length;
field.value = "";
list = new Array();
for(var i = 0;i < len;i++)
{
list[i] = new Object();
list[i]["text"] = selobj.options[i].text;
list[i]["value"] = selobj.options[i].value;
}
}
else
{
var op = document.createElement("option");
var tmp = null;
for(var i = 0;i < list.length;i++)
{
tmp = op.cloneNode(true);
tmp.appendChild(document.createTextNode(list[i]["text"]));
tmp.setAttribute("value",list[i]["value"]);
selobj.appendChild(tmp)/*;*/
}
}
}
function findIt(sel,field)
{
var selobj = document.getElementById("sel");
var d = document.getElementById("display");
var len = list.length;
if(field.value.length > 1)
{
if(!list)
{
fillit(sel,field);
}
var op = document.createElement("option");
selobj.options.length = 1
var reg = new RegExp(field.value,"i");
var tmp = null;
var count = 0;
var msg = "";
for(var i = 0;i < len;i++)
{
if(reg.test(list[i].text))
{
// d.childNodes[0].nodeValue = msg;
tmp = op.cloneNode(true);
tmp.setAttribute("value",list[i].value);
tmp.appendChild(document.createTextNode(list[i].text));
selobj.appendChild(tmp);
}
}
}
else if(list && len > selobj.options.length)
{
selobj.selectedIndex = 0;
fillit(sel,field);
}
}
</script>
</head>
<body onLoad="fillit(sel,entry)">
<div>Enter the first three letters of a street and select a match from the menu.</div>
<form>
Street
<input type="text" name="Street" id="entry" onKeyUp="findIt(sel,this)"><br>
<select id="sel">
<option value="s0001">Adams</option>
<option value="s0002">Alder</option>
<option value="s0003">bol</option>
<option value="s0004">col</option>
<option value="s0005">dol</option>
<option value="s0007">Cooper</option>
<!--and so on and so forth-->
</select>
</form>
</body>
任何想法如何使其在页面上的多选上工作?
谢谢
巴罗兹
不确定这是否适合您,但选择了.js有一个非常好的自动组合多选
http://harvesthq.github.com/chosen/
通常自动完成是针对单个值的,但 jQuery UI 自动完成确实具有多选功能。也许试试?以这种方式为您编码的工作量最小。
一种奇怪的方法是更改脚本中的 ID,并将其复制到要在页面中使用此选项的次数。 所以例如:
select id="sel1"
select id="sel2"
select id="sel3"
然后。复制脚本并将每个 (SEL) 替换为 sel1 再次经过它,并将 (sel) 替换为 sel2,依此类推。不是最好的解决方案,但它会起作用。祝你好运
相关文章:
- javascript选项卡没有'不起作用
- IE7在带有Javascript选项卡导航的页面上误读CSS
- 声明JavaScript选项对象的正确方法
- JavaScript选项卡动态宽度.animate()只能工作一次
- 编译为JavaScript选项,该选项使用十进制库而不是IEEE 754数学
- Javascript选项卡未正确激活
- Javascript选项卡字符删除
- Javascript 选项卡不会在页面加载时打开选项卡
- 显示隐藏样式 JavaScript 选项卡菜单
- 将鼠标悬停在 JavaScript 选项卡上,页面上有几个选项卡组
- JavaScript 选项卡式内容而不使用 jquery
- 如何直接链接到特定的 JavaScript 选项卡
- 在 JavaScript 选项卡中显示分页
- 预加载图像并为我的 CSS 行的简单 Javascript 选项过渡
- jQuery/JavaScript选项卡不适用于IE9
- 使用JavaScript启用和禁用浏览器JavaScript选项
- JavaScript选项卡式文件夹;无法在Internet Explorer中工作
- html/javascript选项卡控制器不工作
- 它能在JavaScript选项runat=“”中从另一台服务器调用js文件吗;服务器”;
- 雄辩的javascript选项卡练习