如何将输入映射到我的数据列表选项
How to map input to my datalist option?
我的代码如下:
.HTML:
<input list="itemList" id="inputItemList" type="text" class="form-control">
<datalist id="itemList" >
<option value="Example" data-id="1">
</datalist>
Javascript:
var element = $("#inputItemList");
var itemName = element.val();
var id = element.attr('data-id');
通过Javascript,我将<option>
添加到我的数据列表中,其中每个选项都有data-id
的自定义数据。我可能做错了,但是当我查询<input>
中的值时,我只有选项的值;我无法从我的<option>
中获取其他属性。有没有办法解决这个问题?
我也试图在<datalist>
中获取选定的选项,但是当我这样做时,其中没有任何选择。
好的,这是解决方案。您只需要收听输入,然后检查所有选项:
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<input list="itemList" id="inputItemList" type="text" class="form-control">
<datalist id="itemList" >
<option value="Example 1" data-id="1">
<option value="Example 2" data-id="2">
<option value="Example 3" data-id="3">
<option value="Example 4" data-id="4">
</datalist>
<script type="text/javascript">
$(document).on('change',$('#inputItemList'),function(e){
var theID = checkOption($(e.target).val());
if(theID) {
return console.log('Found match: ' + theID);
} else {
return console.log('No Match Found!');
}
})
function checkOption(val) {
var theID;
$('#itemList option').each(function(){
if(val.toLowerCase() == $(this).val().toLowerCase()){
theID = $(this).data('id');
}
})
return theID;
}
</script>
相关文章:
- ajax请求成功,但可以'我看不到我的数据
- AngularJS过滤器不适用于我的数据:关联数组
- 为什么为我的数据表设置类没有任何作用
- 我应该如何在redux中构建/传递我的数据或操作
- 如何取回我的数据
- 为什么我的数据绑定到一个计算函数不起作用(使用knockout.js和jade)
- 如何获取d3轴刻度以匹配我的数据
- ng-repeat / ng-bind 不会显示我的数据
- 为什么不能关闭我的数据表的排序
- D3.js复制我的数据
- 我的数据没有使用 AJAX 保存在数据库中
- 如何将输入映射到我的数据列表选项
- 警报截断了我的数据,我该如何查看它
- 如何在 Clojurescript 中 firebase.push ?我的数据是否正确
- 为什么我的数据绑定不起作用
- 为什么我的数据没有被添加到mojolicious的藏匿处
- 如何使用 Jquery 在段落中以纯文本形式显示我的数据,该段落以 JSON 文本包装
- 节点 js:Express + ssh2 在加载网页时不会重置我的数据结构
- 谷歌地图API v3:我在热图上显示我的数据时遇到问题
- AngularJS:如何判断我的控制器是否绑定到我的ng-repeat指令元素?我的数据没有显示