Hola fjchavez.
Si te entendí bien así quedaría tu código.
Código:
<html>
<head>
<title></title>
<script laguage="javascript">
function activar(elemento)
{
if(elemento.universidad.options[elemento.universidad.selectedIndex].text=="Otros")
{
var textfield = document.createElement('Input');
textfield.setAttribute('type','text');
elemento.appendChild(textfield);
document.getElementById("aparece").style.display = "inline";
}
else
{
document.getElementById("aparece").style.display = "none";}
}
function habilitar(form)
{
if(form.asistente.options[0].selected || form.asistente.options[2].selected==true)
{
form.universidad.disabled=true;
}
else
{
form.universidad.disabled=false;
}
}
</script>
</head>
<body>
<form >
<table>
<tr>
<td>Tipo de Asistente</td>
<td colspan="3">
<select name="asistente" onChange="habilitar(this.form)">
<option value=" " selected="selected">[Seleccione]</option>
<option value="Universitario">Universitario</option>
<option value="Profesional">Profesional</option>
</select>
</td>
</tr>
<tr>
<td>Universidad</td>
<td>
<select name="universidad" onChange="activar(this.form)" disabled>
<option value=" " selected="selected">[Seleccione su opcion]</option>
<option value="JJJ">JJJ</option>
<option value="YYY">YYY</option>
<option value="ZZZ">ZZZ</option>
<option value=Otros">Otros</option>
</select>
</td>
<td id="aparece" style="display:none">Cual?</td>
<td id="aparece" style="display:none"><input type="text" name="otras" /></td>
</tr>
</table>
</form>
</body>
</html>
que fue lo que se modifico...
1.- En la función activar tu pasa elemento que en este caso es la forma, dentro de la forma tu tienes tus dos select, así que para llegar al valor seleccionado al select primero debes de posicionarte en el select.
elemento.universidad
Ahora bién para obtener el texto seleccionado bástaria con un
elemento.universidad.options[elemento.universidad.selectedIndex].text
Que no es más que acceder a la option que nos interesa por medio del selectindex del select universidad, creo que hay una forma más sencilla jeje pero ahorita solo se me ocurrio así.
Ahora cuando ya accediste hasta el texto del segundo select (universidad) ahora podremos compararlo.
if(elemento.universidad.options[elemento.universidad.selectedIndex].text=="Otros")
2.- Crear el input y asignarles los atributos.
var textfield = document.createElement('Input');
textfield.setAttribute('type','text');
Esto es con algo de DHTML, jeje se crea una variable que sele asigna el elemento creado en este caso un input. Pero el input necesita saber que tipo de input es, así que le decimos que su atributo type="text"
3.- agregamos el input a la forma.
elemento.appendChild(textfield);
Listo...
Espero te ayude..