Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

114
Visualizações
Disable selected item and below in another select

I have two drop down lists. I need to disable items that I choose from the first select and the items below it. How can I do it in jQuery? I could disable the same value, but not the values below. Can any body help?

$('#seat').on('change', '.from select', function() {
  $('option[disabled]').prop('disabled', false);

  $('.station_from').each(function() {
    $('.stationTo').not(this).find('option[value="' + this.value + '"]').prop('disabled', true);
  });
});
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You can do a loop check. this is not the most efficient way but its a simple one. You can read the comments in the code to better understand it

// When the value for the first drop down list changes
$('#firstSelect').change(function() {

  // get the selected value of the first drop down list
  var selectedValue = $(this).val();
  
  // we need this flag to check if we have reached the selected value in the second drop down list. we default it to false since we have not found it yet
  var foundOption = false;
  //for each option in the second drop down list
  $("#secondSelect option").each(function(key,value){
  
    // enable that option
    $(value).prop('disabled', false);
    
    // check if the option in the second drop down list has the same value as the selected value of the first drop down list
    if($(value).val() == selectedValue){
    // if so then set flag to true
      foundOption = true;
    }
    
    // if flag is true or in other words if we have found the option in the second drop down list with the same selected value of the first drop down list
    if(foundOption){
    // then disable that option and every option that comes after that value
      $(value).prop('disabled', true);
    }
  });
  
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<select id="firstSelect">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
</select>
<br>
<br>
<br>
<select id="secondSelect">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
</select>

about 4 years ago · Juan Pablo Isaza Relatório

0

I found it :

$('#seat').on('change','.from select', function() {

                /* enable any previously disabled options */
                $('option[disabled]').prop('disabled', false);

                /* loop over each select */
                $('.station_from').each(function(){

                /* for every other select, disable option which matches this this.value */
                 $('.stationTo').not(this).find('option[value="' + this.value + '"]').prop('disabled', true);
                 $('.stationTo').not(this).find('option[value="'+this.value+'"] ~ option').prop('disabled',true);
                });

                });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda