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.