Javascript 在输入框中键入要搜索的内容
我有一个表单,用户可以选择他们的职业。职业列表位于单独的.js文件中,如下所示:Javascript 在输入框中键入要搜索的内容,javascript,html,input,Javascript,Html,Input,我有一个表单,用户可以选择他们的职业。职业列表位于单独的.js文件中,如下所示: var occupationSelect = "<select id='occupationSelect' onchange='selectChange()' ><option value=''></option><option value='v10173' >AA Patrolman</option><option value='v10174' &
var occupationSelect = "<select id='occupationSelect' onchange='selectChange()' ><option value=''></option><option value='v10173' >AA Patrolman</option><option value='v10174' >Abattoir Inspector</option>
var-occulationselect=“AA巡查员
现在在我的表单中,我想要一个输入框(因为职业列表很长),让用户键入A、B等,然后出现相关的职业
如果我把所有职业放在一个数组中,这把小提琴就可以了
但是,my.js文件中的选项具有附加值,供以后在web应用程序中使用(例如,option value='v10173')
通过键入获得职业的最佳选项是什么,同时还要确保附加值。编辑了js FIDLE:
<input name="car" list="anrede" />
<input name="car-val" hidden />
<ul id="anrede"></ul>
var mycars2 = [
['Herr', 'herr'],
['thomas', 'v2345'],
];
var list = $('#anrede');
listHtml = '';
mycars2.forEach(function(item){
var option = '<li data-val="' + item[1] + '">' + item[0] + '</li>';
listHtml += option;
});
list.html(listHtml);
$('#anrede li').on('click', function(){
$('input[name="car"]').val($(this).html());
$('input[name="car-val"]').val($(this).attr('data-val'));
});
var mycars2=[
[先生],[先生],
['thomas','v2345'],
];
风险值列表=$('anrede');
listHtml='';
mycars2.forEach(功能(项目){
var option=''+item[0]+' ';
listHtml+=选项;
});
html(listHtml);
$('anrede li')。在('click',function()上{
$('input[name=“car”]').val($(this.html());
$('input[name=“car val”]').val($(this.attr('data-val'));
});
这需要jquery,并且名称/值成对存储在列表中
值使用隐藏输入。编辑了js小提琴:
<input name="car" list="anrede" />
<input name="car-val" hidden />
<ul id="anrede"></ul>
var mycars2 = [
['Herr', 'herr'],
['thomas', 'v2345'],
];
var list = $('#anrede');
listHtml = '';
mycars2.forEach(function(item){
var option = '<li data-val="' + item[1] + '">' + item[0] + '</li>';
listHtml += option;
});
list.html(listHtml);
$('#anrede li').on('click', function(){
$('input[name="car"]').val($(this).html());
$('input[name="car-val"]').val($(this).attr('data-val'));
});
var mycars2=[
[先生],[先生],
['thomas','v2345'],
];
风险值列表=$('anrede');
listHtml='';
mycars2.forEach(功能(项目){
var option=''+item[0]+' ';
listHtml+=选项;
});
html(listHtml);
$('anrede li')。在('click',function()上{
$('input[name=“car”]').val($(this.html());
$('input[name=“car val”]').val($(this.attr('data-val'));
});
这需要jquery,并且名称/值成对存储在列表中
值使用隐藏输入。我建议对所选项目和对象数组的
“值”
使用数据值
属性,如下所示:
var mycars = [
{
title: 'Herr',
value: 'Herr Value'
},
{
title: 'Frau',
value: 'Frau Value'
}
];
var list = document.getElementById('anrede');
var input = document.getElementById('carList');
mycars.forEach(function(item) {
var option = document.createElement('option');
option.value = item.title;
option.dataset.value = item.value;
list.appendChild(option);
});
input.onchange = function() {
alert(document.querySelector('option[value="' + this.value + '"]').dataset.value)
}
以下是JSFIDLE-我建议对所选项目和对象数组的
“value”
使用数据值
属性,如下所示:
var mycars = [
{
title: 'Herr',
value: 'Herr Value'
},
{
title: 'Frau',
value: 'Frau Value'
}
];
var list = document.getElementById('anrede');
var input = document.getElementById('carList');
mycars.forEach(function(item) {
var option = document.createElement('option');
option.value = item.title;
option.dataset.value = item.value;
list.appendChild(option);
});
input.onchange = function() {
alert(document.querySelector('option[value="' + this.value + '"]').dataset.value)
}
这是JSFIDLE-你能链接到这个提琴吗?我已经复制并添加了jquery url,但运气不好?没有css的ul非常难看。如果你从第二个输入中删除隐藏项,你可以看到它正在把值放在那里。谢谢,你是说删除隐藏项,然后在第二个输入框中键入Herr应该让Herr出现?我刚刚编辑了代码笔,以使用datalist作为原始数据,因此搜索功能保留。这是正确的,该值应添加到第二个输入中。在浏览器检查器中将
display:block
添加到该代码笔中也会起作用。如果我键入Herr,如何测试该代码笔,以显示正在输入Herr和Herr您可以链接到此fid吗dle?我已经复制并添加了jquery url,但没有运气?没有css的ul非常难看。如果你从第二次输入中删除隐藏内容,你可以看到它将值放在那里。谢谢,所以你是说删除隐藏内容,然后键入Herr应该让Herr出现在第二个输入框中?我刚刚编辑了代码笔,以使用datalist作为原始输入因此,搜索功能仍然存在。这是正确的,应该将值添加到第二个输入中。在浏览器检查器中将display:block
添加到该值也应该起作用。如果我键入Herr,如何测试该值以显示正在输入Herr和Herr