Files
tripwithbonus/static/v2/js/widgets/w_radio_inputs.js
2025-01-15 21:05:51 +03:00

52 lines
1.5 KiB
JavaScript

function chooseRadioInput(el, callback){
if (!el) return;
let $parent = el.closest('.w_radio_inputs');
if (!$parent) return;
let $radios = $parent.querySelectorAll('.radio');
$radios.forEach(radio => {
radio.classList.remove('checked')
})
$parent = el.closest('.cw_w_radio_inputs_radio_input');
let $radio = $parent.querySelector('.radio');
$radio.classList.toggle("checked");
let el_name = $parent.dataset.name;
resetFieldError(el);
if (callback) callback(el, el_name)
}
function generateRadioInput(data, selected){
let title = data.title;
if (title.includes('(')){
title = title.replace(')', '')
title = title.split('(')
if (title.length > 1){
title = `<div>${title[0]}</div><div class="annotation">(${title[1]})</div>`
}
}
let html = `
<div class="cw_w_radio_inputs_radio_input" data-name="${data.name}">
<div class="radio${selected? ' checked' : ''}" onclick="chooseRadioInput(this, ${data.callback})"></div>
<div class="radio_label" onclick="chooseRadioInput(this, ${data.callback})">${title}</div>
</div>
`
return html;
}
function resetWRadioInputs(widget_name){
let $widget = getWRadioInputsWidget(widget_name);
if (!$widget) return;
$widget.innerHTML = '';
}
function getWRadioInputsWidget(widget_name){
if (!widget_name) return;
let $widget = $(`.field_container[data-type="radio"][data-name="${widget_name}"] .w_radio_inputs`)[0];
return $widget;
}