44 lines
1.2 KiB
JavaScript
44 lines
1.2 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){
|
|
let html = `
|
|
<div class="cw_w_radio_inputs_radio_input" data-name="${data.name}">
|
|
<div class="radio" onclick="chooseRadioInput(this, ${data.callback})"></div>
|
|
<div class="radio_label" onclick="chooseRadioInput(this, ${data.callback})">${data.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;
|
|
} |