Clicando no checkbox e habilitando um campo de texto

4 respostas
A

Olá, boa tarde!

Eu estou desenvolvendo em Java e sou iniciante, e no momento estou precisando de uma ajudinha!

Quando clico no checkbox “Limite” preciso habilitar um campo de texto, e quando desmarco o checkbox preciso que ele volte a ficar desabilitado, só que preciso que isso funcione em Ajax.

Se alguém poder me ajudar, agradeço desde já!

4 Respostas

T

Cara, não entendi o porque de ser ajax, mas desse jeito funfa

<script>
	function habilita(campo, idCampo) {
		document.getElementById(idCampo).disabled = campo.checked;
	}
</script>

<html>
	<input type="checkbox" onclick="javascript: habilita(this, 'campo');" />
	<input type="text" id="campo" " />
</html>
A

é a pedido do chef! rs

Mas você saberia me dizer como eu faria no Ajax?
Obrigada! :wink:

T

Opa, desculpa pelo cara :oops:

Bom, com ajax só faria sentido se tivesse que consultar algo no lado do servidor, mas o chefe quer.... paciência

<script>
	function habilita(campo, idCampo) {
	var xmlhttp;
	 if (window.XMLHttpRequest)
	   {// code for IE7+, Firefox, Chrome, Opera, Safari
	   xmlhttp=new XMLHttpRequest();
	   }
	 else
	   {// code for IE6, IE5
	   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	   }
		xmlhttp.open("GET","/scwcd/AjaxTest?enable=" + campo.checked,true);
		xmlhttp.send();
		var enable = new Boolean(xmlhttp.responseText);
		document.getElementById(idCampo).disabled = enable;
	}
</script>

<html>
	<input type="checkbox" onclick="javascript: habilita(this, 'campo');" />
	<input type="text" id="campo" />
</html>

Note que não muda muito a lógica. No lado do servidor você cria uma servlet que implemente o doGet, pegue o atributo que está sendo passado por parâmetro e vê, se for igual a true, retorne 1 na resposta, se for false, retorne 0;

P.S.: Não consegui testar aqui. Dê uma pesquisada em jquery para implementar a parte do js, fica mais fácil.

A

Muito Obrigada! :slight_smile:

Criado 13 de novembro de 2012
Ultima resposta 14 de nov. de 2012
Respostas 4
Participantes 2