JavaScript цикл event
Как через цикл сделать активацию того или иного input? Можно конечно прописать каждой по функции, но очевидно что это не самый правильный способ...
function selectFunc() {
document.getElementById('text1').disabled = false;
document.getElementById('text2').disabled = true;
document.getElementById('text3').disabled = true;
document.getElementById('text4').disabled = true;
}
<form action="#">
<input type="radio" name="sel" onclick="selectFunc();"> <input type="text" id="text1"><br>
<input type="radio" name="sel" onclick="selectFunc();"> <input type="text" id="text2"><br>
<input type="radio" name="sel" onclick="selectFunc();"> <input type="text" id="text3"><br>
<input type="radio" name="sel" onclick="selectFunc();"> <input type="text" id="text4">
</form>
Ответы (2 шт):
Автор решения: DrMcSheen
→ Ссылка
Передавай в функцию параметр.
<input type="radio" name="sel" onclick="selectFunc(1);"> <input type="text" id="text1"><br>
<input type="radio" name="sel" onclick="selectFunc(2);"> <input type="text" id="text2"><br>
А в ней уже цикл, или что там нужно.
function selectFunc(nom) {
if (nom==1)
Автор решения: Qwertiy
→ Ссылка
document.querySelector("form").addEventListener("click", e => {
if (e.target.name === "sel") {
for (var id of ["text1", "text2", "text3", "text4"]) {
document.getElementById(id).disabled = id !== e.target.value
}
}
})
<form action="#">
<input type="radio" name="sel" value="text1"> <input type="text" id="text1"><br>
<input type="radio" name="sel" value="text2"> <input type="text" id="text2"><br>
<input type="radio" name="sel" value="text3"> <input type="text" id="text3"><br>
<input type="radio" name="sel" value="text4"> <input type="text" id="text4">
</form>