Como desabilitar componentes de um formulario

11/05/2011

0

PHP

Olá amigos, sou iniciante e estou trabalhando no desenvolvimento de uma aplicação pra faculdade onde estudo, me deparei com a seguinte situação, eu tenho uma tela onde o usuario vai fazer 3 tipo de consultas diferentes, ou seja, ele seleciona qual vai ser o parametro da consulta através de um radio do formulario, ai ele passa as datas que deseja e consulta, até ae tudo bem, fiz isso para as outras duas consultas que tenho, mas para deixar ele mais profissional, gostaria de usar os radios html, da seguinte forma, quando ele seleciona um tipo de consulta clicando nesse radio, as outras duas ficam desabilitadas sem permitir que o usuario digite, quando ele mudar o focu para o outro radio esse fica habilitado desabilitando os demais, só que não tenho ideia de como fazer se alguem puder me ajudar com esse código ficaria muito grato!!!!
Eduardo Oliveira

Eduardo Oliveira

Responder

Posts

11/05/2011

Alexis Moura

você pode fazer isso via java script.
Responder

12/05/2011

Eduardo Oliveira

Mas como disse, sou iniciante não entendo muito de java script, na verdade sei usar bem pouco, tipo mascara pra data telefone coisas do tipo, agora pra poder habilitar e desabilitar recebendo informaççoes do RADIO, eu não sei, tem alguma função q faça isso?
Responder

12/05/2011

Diego Silvestrin

Como tu falastes, se estás usando radioButtons, quando um for selecionado os outros desabilitam, desde que todos tenham o mesmo nome.

Segue

1<input type="radio" value="1" name="radio"><br>
2<input type="radio" value="2" name="radio"><br>
3<input type="radio" value="3" name="radio">


Responder

17/05/2011

Eduardo Oliveira

Sim quanto a criação deles tudo OK, estão com o mesmo "NAME" já, mas não queria que somente os radiosbutons ficassem desabilitados, gostaria que os campos de textos que estão a frente deles tambem de desabilitassem conforme a seleção do radio, o problema esta acontecendo ae
Responder

18/05/2011

Eduardo Oliveira

Criei o seguinte código, mas não esta funcionando, alguem pode me dar uma dica do que fazer???

            function habilita(tipo_consulta) 
            {
                if(tipo_consulta == Setor)// value do radio button
                    {
                      //campos a serem habilitados
                      document.getElementById("data_entrada").disabled=false;
                      document.getElementById("data_saida").disabled=false;
                      document.getElementById("setor").disabled=false;
                      //campos a serem desabilitados conforme o IF
                      document.getElementById("data_entrada_problema").disabled=true;
                      document.getElementById("data_saida_problema").disabled=true;
                      document.getElementById("problema").disabled=true;
                    }
                else 
                  if (tipo_consulta == Problema)//value do radio button
                   {
                      //campos a serem habilitados
                      document.getElementById("data_entrada_problema").disabled=true;
                      document.getElementById("data_saida_problema").disabled=true;
                      document.getElementById("problema").disabled=true;
                      //campos a serem desabilitados conforme o IF acima
                      document.getElementById("data_entrada").disabled=false;
                      document.getElementById("data_saida").disabled=false;
                      document.getElementById("setor").disabled=false;
                   }
            }


E na chamada da funcção esta assim, para os campos que estou trabalhando....

  <input type="radio" name="consulta" value="Setor"  onclick="java script:habilita(this.value)" checked="Setor">
  <input type="radio" name="consulta" value="Problema" onclick="java script:habilita(this.value)" >

Só que quando eu rodo meu formulario, os campos continuam editaveis, ou seja habilitados para digitação, alguem pode me dizer onde esta havendo erro???
Responder

18/05/2011

Eduardo Oliveira

[b]RESOLVIDO[/b]

 Na chamada da função troquei o VALUE, e passei um numero, ao invés de um nome, ae funcionou normal ficando assim a chamada da função

<input type="radio" name="consulta" value="1" onclick="habilita(this.value)" >
<input type="radio" name="consulta" value="2" onclick="habilita(this.value)" >

E o código da função ficou assim

     
  
      function habilita(tipo_consulta) 
            {
                if(tipo_consulta == 1)// value do radio button
                    {
                      //campos a serem habilitados
                      document.getElementById("data_entrada").disabled=false;
                      document.getElementById("data_saida").disabled=false;
                      document.getElementById("setor").disabled=false;
                      //campos a serem desabilitados conforme o IF
                      document.getElementById("data_entrada_problema").disabled=true;
                      document.getElementById("data_saida_problema").disabled=true;
                      document.getElementById("problema").disabled=true;
                      document.getElementById("data_entrada_tec").disabled=true;
                      document.getElementById("data_saida_tec").disabled=true;
                      document.getElementById("tecnico").disabled=true;
                    }
                else 
                  if (tipo_consulta == 2)//value do radio button
                   {
                      //campos a serem habilitados
                      document.getElementById("data_entrada_problema").disabled=false;
                      document.getElementById("data_saida_problema").disabled=false;
                      document.getElementById("problema").disabled=false;
                      //campos a serem desabilitados conforme o IF acima
                      document.getElementById("data_entrada").disabled=true;
                      document.getElementById("data_saida").disabled=true;
                      document.getElementById("setor").disabled=true;
                      document.getElementById("data_entrada_tec").disabled=true;
                      document.getElementById("data_saida_tec").disabled=true;
                      document.getElementById("tecnico").disabled=true;
                   }
        


Ae esta com alguns campos a mais, pelo fato do meu formulario ser maior, mas fica ae um exemplo funcionando para quando alguem precisar, só não entendi o fato de eu precisar passar um numero e não um nome, se alguem souber aguardo uma resposta!!!
Responder

29/04/2013

José

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar