Как декодировать знак вопроса в ссылке?
Подскажите, пожалуйста, есть два radio:
input type="checkbox" value="site.ru/article и input type="checkbox" value="?start=1.
Также есть JS-скрипт, который при нажатии двух radio берёт их значения и формирует их них ссылку, выполняет переход по данной ссылке.
Но есть проблема: вопросительный знак при этом превращается в нечто %3F. Подскажите, как решить проблему?
document.querySelectorAll("input[type='radio']").forEach(el => el.checked=false);
let letters = [];
const itemList = [];
document.querySelectorAll('.productdetaiils li').forEach((el, i) => {
const letter = el.innerText.trim().split(' ')[0][0];
letters.push(letter);
letters = [...new Set(letters)];
itemList.push({
id: i,
content: el.innerHTML,
letter
});
const lettersMap = letters.map(el => {
return `<label class="example-lk"><input class="downers form-check-input" name="b" type="radio" value=${el} autocomplete="off">${el}</label>`
});
document.querySelector('.results .tabs').innerHTML = lettersMap.join('')
});
document.querySelectorAll('.tabs input').forEach(tab => {
tab.onclick = (e) => {
if(tab.name!=="b") return;
const FilteredList = itemList.filter(item => item.letter === e.target.value).map(item => `<li>${item.content}</li>`);
document.querySelector('.results .content').innerHTML = FilteredList
e.target.closest(".results").querySelector(".content").classList.add("show");
const pd = document.querySelector(".productdetails")
if (pd) {
pd.remove()
}
}
});
/////////
let data = {
a: null,
c: null
}
document.addEventListener("change", function (event) {
const input = event.target.closest("input");
if (!input || input.getAttribute("type") !== "radio") return;
let name = input.name;
if (!name || !data.hasOwnProperty(name)) return;
if (!input.checked) {
data[name] = null;
return;
}
data[name] = input.value;
if (name === "a") {
// если какое-то значение не выбрано
if (Object.values(data).some(v => !v)) return;
location.pathname = data.a + data.c;
}
if (name === "c") {
// если какое-то значение не выбрано
if (Object.values(data).some(v => !v)) return;
location.pathname = data.a + data.c;
}
});
.productdetaiils {
display: none;
}
<div class="tabs-stage">
<div class="rower">
<h3 class="frst-rep-ttl">Выберите неисправность устройства:</h3>
<div class="fix-item first-check">
<input autocomplete="off" id="link1" class="linkinp form-check-input" name="c" type="radio" value="?start=1">Ссылка 1
</div>
</div>
</div>
<ul class="productdetaiils">
<li>
<div class="entry-image intro-image">
<input type="radio" class="form-check-input" value="/all/laptops/acer/aspire-r-13-r7-372t-520q" name="a"> Сслыка 2
</li>
</ul>
<div class="results">
<ul class="tabs"> </ul>
<ul class="content"></ul>
</div>