Como desabilitar componentes de um formulario
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
Curtidas 0
Respostas

Alexis Moura
11/05/2011
você pode fazer isso via java script.
GOSTEI 0

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
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">
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
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
11/05/2011
Criei o seguinte código, mas não esta funcionando, alguem pode me dar uma dica do que fazer???
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???
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
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
E o código da função ficou assim
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!!!
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é
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