Jump to content
Sign in to follow this  
marcossantana10

Habilitar/Desabilitar campos via Combobox (Select)

Recommended Posts

Queria saber como faço pra habilitar/desabilitar um campo de texto dependendo da minha seleção do combobox.

OBS: Eu fiz com um radiobutton e funciona de boa no "onClick". O código dele tá ai:

 

<input type="radio" name="q1" value="Não" onclick="if(document.getElementById('qual').disabled==false && document.getElementById('tempo').disabled==false){
document.getElementById('qual').disabled=true
document.getElementById('tempo').disabled=true
}" />
Não</td>
</tr>
<tr>
<td><input type="radio" name="q1" value="Sim" onclick="if(document.getElementById('qual').disabled==true && document.getElementById('tempo').disabled==true){
document.getElementById('qual').disabled=false
document.getElementById('tempo').disabled=false
}" />
Sim
A questão é que quando eu vou pro combobox, não sei consigo colocar pra o "onChange" funcionar direito:
<select name="tipo_consulta" required="true">
<option onchange="if(document.getElementById('valor').disabled==false && document.getElementById('desconto').disabled==false){
document.getElementById('valor').disabled=true
document.getElementById('desconto').disabled=true
}">Consulta</option>
<option onchange="if(document.getElementById('valor').disabled==true && document.getElementById('desconto').disabled==true){
document.getElementById('valor').disabled=false
document.getElementById('desconto').disabled=false
}">Retorno</option>
</select>
"valor" e "descontos" são os campos que eu quero que habilite/desabilite
Dessa forma que tá aí, ele não altera o estado dos campos.
Se eu colocar assim:
<select onchange="if(document.getElementById('valor').disabled==false && document.getElementById('desconto').disabled==false){
document.getElementById('valor').disabled=true
document.getElementById('desconto').disabled=true
}" name="tipo_consulta" required="true">
<option >Consulta</option>
<option onchange="if(document.getElementById('valor').disabled==true && document.getElementById('desconto').disabled==true){
document.getElementById('valor').disabled=false
document.getElementById('desconto').disabled=false
}">Retorno</option>
</select>
Ele desabilita, mas não habilita de novo quando mudo a opção.

Share this post


Link to post
Share on other sites

Bom dia marcos, crie uma função para fazer isso amigo. veja um exemplo:

<body>
    <form>
        <select id="meuselect">
           <option value="0">Selecione</option>
           <option value="1">Opção 1</option>
           <option value="2">Opção 2</option>
        </select>
    </form>
</body>

<script>
    window.onload = function(){
            var selectBox = document.getElementById("meuselect");

            //abaixo crio um evento com javascript para quando haver mudança
            selectBox.addEventListener("change", function(){
                //sua função aqui...
            });
    }
</script>

Conforme script acima, eu criei um ID no meu select para pegar o elemento que eu quero manipular no javascript, e com base nesse elemento criar um evento "change", que é a mesma coisa que o onChange. não se usa evento no option apenas no select caso seja necessário, tenta essa solução

Share this post


Link to post
Share on other sites

Bom dia marcos, crie uma função para fazer isso amigo. veja um exemplo:

<body>
    <form>
        <select id="meuselect">
           <option value="0">Selecione</option>
           <option value="1">Opção 1</option>
           <option value="2">Opção 2</option>
        </select>
    </form>
</body>

<script>
    window.onload = function(){
            var selectBox = document.getElementById("meuselect");

            //abaixo crio um evento com javascript para quando haver mudança
            selectBox.addEventListener("change", function(){
                //sua função aqui...
            });
    }
</script>

Conforme script acima, eu criei um ID no meu select para pegar o elemento que eu quero manipular no javascript, e com base nesse elemento criar um evento "change", que é a mesma coisa que o onChange. não se usa evento no option apenas no select caso seja necessário, tenta essa solução

 

Eu criei a função com os códigos que postei ai em cima. A solução tava na função pois ela consegue manipular os options pelo select. Obrigado amigo.

Share this post


Link to post
Share on other sites

Olá Marcos, se a função que eu coloquei resolveu seu problema, nada mais justo do que marcar a minha resposta como solução.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By nathicoelhoo
      Tenho um cadastro de cliente e no cadastro é selecionado o sexo e o estado, por exemplo. Na área de edição, preciso puxar esses dados JÁ SELECIONADOS para um combobox. Tentei fazer com foreach porém não funcionou. Alguém pode me ajudar?
      <div class="form-group col-md-5" > <label for="inputSexo">Sexo</label> <select name="sexo_cliente" id="sexo_cliente" class="form-control" disabled> <option selected disabled="">Sexo</option> <?php require_once "api/conexao.php"; try { $prepared3 = $conexao_pdo->prepare("select * from sexo"); $prepared3->execute(); $result3 = $prepared3->fetchAll(); foreach($result3 as $resultado3) { echo "<option value='". $resultado3["cod"] ."'>". $resultado3["sexo"] ."</option>"; } } catch (PDOException $e) { echo "<option></option>"; } ?> </select> </div>  
    • By reytlersouza
      Não consigo passar variável obtida por consulta no banco no value de uma TAG <option> "<option value="<?php $item['id_eq']?>">"
       
      O que está errado no meu código que ele não passa o valor de value no $_GET nem no $_POST?

       
      <?php
          echo $_GET['equi1'];
      ?>
      <form method="GET">   
          <select name="equi1" class="form-control">
              <?php
              require 'conn.php';
              $sql = $pdo->prepare("SELECT * FROM equipamento WHERE 1");
              $sql->execute();
              if($sql->rowCount() > 0) {
              foreach($sql->fetchAll() as $item) {
                                                                      
              ?>
              <option value="<?php $item['id_eq'];?>"><?php echo $item['nome'];?></option>
              <?php
                  }
                  }
                  ?>
          </select>
          <input type="submit" value="Salvar"/>
      </form>
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          1          60.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            1          45.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   1          50.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             1          55.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              1          35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                                                      Bacon Cheddar                          1           60.00
                                                                                                                                                      Chicken Club Sandwich           1            45.00
      26    46        15/05/2019 13:57:25         Dinheiro                  Pendente                           Philly Cheese Steak                   1            50.00
                                                                                                                                                      Smoke House                             1            55.00
                                                                                                                                                      Stream Miller                              1            35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      Alguem pode me ajudar, qual seria a melhor forma de fazer ?

      Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas.
       
      php: 
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      echo "<tr role='row' class='odd'>";
                                                      echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>";
                                                      echo "<td>" .$resultado['Nome']."</td>";
                                                      echo "<td>" .$resultado['Quantidade']."</td>";
                                                      echo "<td>" .$resultado['Preco']."</td>";
                                                      echo "<td>" .$resultado['Metodos']."</td>";
                                                      echo "<td>" .$resultado['DataPedido']."</td>";
                                                      echo "<td>" .$resultado['Situacao']."</td>";
      echo "</tr>";
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      vlw pessoal
       
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            145.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   150.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                 46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
                                                                                                                                                      Chicken Club Sandwich            145.00
                                                                                                                                                      Philly Cheese Steak                   150.00
       Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.