Como desabilitar componentes de um formulario

PHP

11/05/2011

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

Curtidas 0

Respostas

Alexis Moura

Alexis Moura

11/05/2011

você pode fazer isso via java script.
GOSTEI 0
Eduardo Oliveira

Eduardo Oliveira

11/05/2011

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?
GOSTEI 0
Diego Silvestrin

Diego Silvestrin

11/05/2011

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">


GOSTEI 0
Eduardo Oliveira

Eduardo Oliveira

11/05/2011

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
GOSTEI 0
Eduardo Oliveira

Eduardo Oliveira

11/05/2011

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???
GOSTEI 0
Eduardo Oliveira

Eduardo Oliveira

11/05/2011

[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!!!
GOSTEI 0
José

José

11/05/2011

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