Jquery: скрыть переключатель с помощью count

#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 ) { вероятно, следует использовать == . Кроме того, вам не хватает награды, чтобы закрыть ваш оператор if

2. Вы получаете количество радиовходов. Затем проверьте, равно ли оно 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();
});