[英]How to read Data tab ids from dropdown list of selected option
I Have Drop down Data tab ids as an array.我将下拉数据选项卡 ID 作为数组。 when i select option I want to get retrieve data tab ids.
当我使用 select 选项时,我想获取检索数据选项卡 ID。
<select name="users[]" id="users" class="form-control " multiple="multiple">
<option data-tab_ids="[1,2,3,4,5,6,7,8]" value="0">Admin</option>
<option data-tab_ids="[9]" value="1">samjad</option>
<option data-tab_ids="[2]" value="2">Mohamed Omar</option>
</select>
Since you have multiple option on select
to get one array of all selected option ids you can use map
method on selected options.由于您在
select
上有多个选项来获取所有选定选项 id 的一个数组,因此您可以对选定选项使用map
方法。
$("select").on('change', function() { const ids = $(this).find('option:selected').map(function() { return $(this).data('tab_ids') }).get(); console.log(ids) })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select name="users[]" id="users" class="form-control " multiple="multiple"> <option data-tab_ids="[1,2,3,4,5,6,7,8]" value="0">Admin</option> <option data-tab_ids="[9]" value="1">samjad</option> <option data-tab_ids="[2]" value="2">Mohamed Omar</option> </select>
You can reduce the selected options by filtering out the non-selected and building a list of data-tab_ids
values.您可以通过过滤掉未选择的选项并构建
data-tab_ids
值列表来减少选择的选项。
document.getElementById('users').addEventListener('change', function(e) { // Retrieved a list of all selected tab lists. let selected = Array.from(e.target.querySelectorAll('option')).reduce((res, opt) => { return opt.selected? res.concat(opt.getAttribute('data-tab_ids')): res; }, []); console.log('Selected tab lists:', JSON.stringify(selected)); // Return an array view of a set of all selected tab IDs. let tabIds = [...new Set(selected.reduce((r, t) => r.concat(JSON.parse(t)), []))].sort(); console.log('Selected tab ids:', JSON.stringify(tabIds)); });
<select name="users[]" id="users" class="form-control " multiple="multiple"> <option data-tab_ids="[1,2,3,4,5,6,7,8]" value="0">Admin</option> <option data-tab_ids="[9]" value="1">samjad</option> <option data-tab_ids="[2]" value="2">Mohamed Omar</option> </select>
Maybe that's it?也许就是这样?
$("#users").on('change', function(){ array = $(this).find('option:selected').attr('data-tab_ids'); console.log(array); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <select name="users[]" id="users" class="form-control " multiple="multiple"> <option data-tab_ids="[1,2,3,4,5,6,7,8]" value="0">Admin</option> <option data-tab_ids="[9]" value="1">samjad</option> <option data-tab_ids="[2]" value="2">Mohamed Omar</option> </select>
It's my solve:这是我的解决方案:
const display = document.querySelector(".display"); const selectInput = document.querySelector(".form-control"); const setValue = () => { display.textContent =selectInput[selectInput.value].textContent + " " + selectInput[selectInput.value].getAttribute("data-tab_ids") } selectInput.addEventListener("click", setValue, false);
<select name="users[]" id="users" class="form-control" multiple="multiple"> <option data-tab_ids="[1,2,3,4,5,6,7,8]" value="0">Admin</option> <option data-tab_ids="[9]" value="1">samjad</option> <option data-tab_ids="[2]" value="2">Mohamed Omar</option> </select> <div class="display"> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.