【发布时间】:2017-07-12 18:52:04
【问题描述】:
我有一个数据列表供用户选择,如下所示:
<input list="user_names" id="names" name="user_name" />
<datalist id="user_names">
<option value="bob" data_id="bob_10">10</option>
<option value="bob" data_id="bob_5">5</option>
<option value="james" data_id="james_7>7</option>
</datalist>
我有一个隐藏的输入字段来保存名为“data_id”的数据属性:
<input type="hidden" name="user_id" id="user_id" value="" />
我正在使用 jQuery 从用户选择的内容中填充 data_id 值。
jQuery(document).ready(function($){
$('#names').on('input, function(){
var value = $(this).val();
var user_id = $('#user_names [value="' + value + '"]').data('id');
document.getElementById('user_id').value = user_id;
})
});
这很好用,除非两个 datalist 选项共享相同的值但不同的 data-id(用两个“bob”条目演示),jQuery 选择第一个选项的 data-id 而不是原来的那个选择。有没有办法可以通过与每个选项关联的文本进一步过滤 jQuery 选择的内容?
【问题讨论】:
标签: javascript jquery html