Public Access
0
0
Files
blanks/js/createSelectElement.md

72 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Создание выпадающего списка
### Пример работы
```js
attributes = {
"event":"addStatusTransport",
"attr_data":{
"brigade_id":document.getElementById("brigade_id").innerText,
"user1c_id":e.dataset.usesr1cId,
}
}
cElementBySelect(e.parentNode.nextElementSibling,status_transport,attributes);
```
```js
/**
* Создание вырадающего списка
*
* @param el - Элемент куда буде помещен созанный список
* @param data - объект с ключем и значением ([{value:text}])
* @param atttributes - Обект содержащий название события и аттридубыи data
*/
function cElementBySelect(el,data = {}, atttributes=null) {
select = document.createElement('select');
select.classList.add("form-select")
if(atttributes){
if('event' in atttributes){
select.addEventListener('change',window[atttributes.event])
}
if('attr_data' in atttributes){
Object.entries(atttributes.attr_data).forEach(([key, value]) => {
select.dataset[key] = value
});
}
}
if(Object.keys(data).length){
option = document.createElement('option');
option.value =0;
option.innerText = "";
select.append(option)
data.forEach((dt)=>{
option = document.createElement('option');
option.value =dt.value;
option.innerText = dt.text;
select.append(option)
})
elchild = el.querySelector("select") || null
if(!elchild){
el.append(select)
}
}else{
alert("Отсутствуют элементы для выпадающего списка");
}
}
```