#jquery
#jquery
Вопрос:
<div id="a">
<input type="checkbox" name="form">Apple<br/>
<input type="checkbox" name="form">Banana
</div>
<div id="a">
<input type="radio" name="form">A<br/>
<input type="radio" name="form">B<br/>
</div>
когда флажки установлены, переключатель должен быть снят, а когда переключатели установлены, все флажки, которые установлены, должны быть сняты.
Комментарии:
1. У вас не должно быть двух DIVS с одинаковым идентификатором.
2. @Barmar Большое спасибо. Как мне включить идентификатор div в селекторы jquery?
3.
#xxx :radio
выбирает все переключатели внутри элемента сid="xxx"
помощью .
Ответ №1:
В html
вы не можете использовать id
более одного элемента. Здесь вы можете прочитать об этом подробнее.
Также имена во входных данных лучше уникальны. Например, когда вы хотите работать с этими данными на серверной части.
<div id="checkingInputs">
<div id="a">
<input type="checkbox" name="inputFirst">Apple<br>
<input type="checkbox" name="inputSecond">Banana
</div>
<div id="b">
<input type="radio" name="inputThird">Apple<br>
<input type="radio" name="inputFourth">Banana
</div>
</div>
Здесь чисто JS-решение, поскольку jQuery уже размещен.
var inputs = document.querySelectorAll("#checkingInputs input");
for (var i = 0; i < inputs.length; i ) {
inputs[i].addEventListener("click", uncheckAll);
}
function uncheckAll() {
for (var i = 0; i < inputs.length; i ) {
if (inputs[i] !== this) { //make sure to not uncheck checked element
inputs[i].checked = false;
}
}
}
Ответ №2:
$(":radio").click(function() {
$(":checkbox").prop("checked", false);
});
$(":checkbox").click(function() {
$(":radio").prop("checked", false);
});
Комментарии:
1. Не могли бы вы уточнить ответ? 113 тыс. повторений; к настоящему времени вы должны быть хороши в этом.
2. Что нужно уточнить. Значение кода самоочевидно.
3. Это легко считать ответом только для кода. Единственная причина, по которой это не было отклонено как таковое, заключается в том, что есть ссылка на jsfiddle .
4. Кроме того, вы кормите справочного вампира. Вопрос демонстрирует отсутствие базового понимания темы.