我的代码如下:
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>
添加到我的datalist,其中每个选项都包含data-id
类的自定义数据。我可能做错了,但当我查询<input>
中的值时,我只有选项的值;我无法从<option>
获取其他属性。有办法解决这个问题吗?
我也尝试在<datalist>
中获取所选选项,但是当我这样做时,其中没有选择任何内容。
答案 0 :(得分:0)
好的,这是解决方案。您只需要听取输入,然后检查所有选项:
<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>