#jquery
#jquery
Вопрос:
Как скрыть переключатель, когда он работает, когда количество указано в jquery. У меня есть четыре переключателя, разработанные на HTML-странице.
<div id="option">
<input type="radio" id="one" value=1>
<input type="radio" id="two" value=2>
<input type="radio" id="three" value=3>
<input type="radio" id="four" value=4>
</div>
Если количество переключателей равно 2, отобразите первые два параметра переключения.
Если количество переключателей равно 4, отобразите все четыре параметра.
var numberOfCheckedRadio = $('input:radio').length;
$(document).ready(function () {
if ( numberOfCheckedRadio = 2 ) {
$('#one').show();
$('#two').show();
}
else {
$('#one').show();
$('#two').show();
$('#three').show();
$('#four').show();
}
});
Комментарии:
1.
if ( numberOfCheckedRadio = 2 ) {
вероятно, следует использовать==
. Кроме того, вам не хватает награды, чтобы закрыть ваш оператор if2. Вы получаете количество радиовходов. Затем проверьте, равно ли оно 2, и покажите первые два, в противном случае вы покажете 1-4. Это в основном переводится как «всегда показывать существующие радиовходы 1-4», что является весьма избыточным.
Ответ №1:
Вы можете попробовать это.
var numberOfCheckedRadio = $("input[type='radio']").length;
$(document).ready(function () {
//hide them all
$("input[type='radio']").hide();
if ( numberOfCheckedRadio === 2 ) {
$('#one').show();
$('#two').show();
}
else if(numberOfCheckedRadio === 4) {
$('#one').show();
$('#two').show();
$('#three').show();
$('#four').show();
}
else{
//do some thing you want with other condition
}
});
Комментарии:
1. Должна ли быть закрывающая скобка elseif
2. вы можете скопировать из этого 🙂 playcode.io/670901 Я кодирую play.io
3. Значения скрываются, но кнопки остаются такими же, как 4
4. вы меняете номер переключателя, вы увидите изменение результата. Вы говорите, будет ли 4 отображать все входные данные
5. Не работает. Я все еще мог видеть кнопки. Можете ли вы заставить его работать с playcode.
Ответ №2:
Поскольку вы всегда показываете 1 и 2, даже не помещайте их в if
предложение:
$(function () {
// Just show
$('#one').show();
$('#two').show();
// If there are more than 2 radio buttons
if ( $('input[type="radio"]').length > 2 ) {
// Show those
$('#three').show();
$('#four').show();
}
});
Однако, как указывает @Lapskaus, вы должны иметь возможность просто показывать их все, несмотря ни на что, потому что, если ваша логика зависит от отображения их полного количества, вам не нужно скрывать какие-либо переключатели, потому что похоже, что ваш PHP в первую очередь определит количество и сначала удалит или добавит их. Если у вас всего 4, но вы хотите показать только 2, то это другая история, тогда вам нужна некоторая логика, но здесь, в любом случае, вы хотите, чтобы максимальное значение отображалось на основе того, что отображается на странице. Я бы просто не стал скрывать их в первую очередь.
Если они были скрыты JS до этого момента в вашем скрипте, и вам нужен JS, чтобы их раскрыть, тогда просто сделайте:
$(function () {
$('input[type="radio"]').show();
});