Personalizar una encuesta nueva

Hola Nerina, antes que nada disculpá la demora en responder. El problema lo tenés en la definición del onclick, yo no me di cuenta antes cuando vi el código que me mostraste. Normalmente esa sería la forma de definirlo, pero fijate que en este caso estas trabajando sobre radio buttons y los elementos html para los radio buttons se definen distinto (parecido a lo que ocurre con los checkbox).
En el caso de las respuestas definidas con un conjunto de radio buttons el evento onclick lo tenes que definir para el grupo de radio buttons y no para uno de ellos. Y fijate que el id para el grupo es distinto: “fsc<id_encuesta><id_bloque><nro_pregunta>_<id_pregunta>”

Para el ejemplo que te había dado anteriormente deberías definir una variable más:


var grupo_radio_button_respuestas = document.getElementsById('fsc2_1_1_71');

y luego el evento y el control inicial de la siguiente manera:


grupo_radio_button_respuestas.onclick = function()
{
   acciones_radio_button();
}
if (radio_button_respuestas!=null) acciones_radio_button();

Hola Clara! no hay problema, la encuesta se lanzo de todos modos, y como tengo otras que preparar, me gustaría poder solucionarlo, ya es una intriga para mi saber qué está pasando… discupá que vuelva a preguntarte, pero no doy en la tecla para que funcione.
Te comento que agregando esa variable y modificando el onclik no funciona ni automáticamente ni dandole guardar…m hice muchas pruebas de todo tipo y nada… iniciando nuevamente con la pregunta de cero el archivo tiene extensión .js esto está bien no es así? directorio …/kolla/aplicacion/www/js/encuestas/
Haciendo resumido el formulario me concentro en dos preguntas, en donde el tipo de respuesta es: una de ellas de tipo radio con dos opciones y la otra solo caja de texto. La idea es que al hacer click en una de las opciones del radio automáticamente se deshabilite la otra pregunta con su respuesta de tipo texto.
Desde ya gracias por ayudarme. Saludos!

El código quedó entonces de esta manera, los ID están revisados una vez mas:

//ESTE ES EL ARREGLO DE ELEMENTOS DEL RADIO BUTTON QUE SE IDENTIFICAN CON EL ESE NOMBRE
var radio_button_respuestas = document.getElementsByName(‘c3_208_5_1005’);

//ESTA ES LA LINEA NUEVA QUE ME INDICASTE
var grupo_radio_button_respuestas = document.getElementsById(‘fsc3_208_5_1005’);

//ESTOS SON: LA PREGUNTA Y EL AREA DE TEXTO DEL RENGLON QUE QUIERO AFECTAR DE ACUERDO AL RADIO BUTTON QUE SE HAYA SELECCIONADO
var pregunta_texto = document.getElementById(‘d3_208_6_1006’);
var respuesta_texto = document.getElementById(‘c3_208_6_1006’);

//ESTOS SON TODOS LOS VALORES DE LAS RESPUESTAS DEL RADIO BUTTON
var si = 53;
var no = 54;

function acciones_radio_button() {
for (i=0; i<radio_button_respuestas.length; i++) {
if (radio_button_respuestas[i].checked) {
if (radio_button_respuestas[i].value == si) {
respuesta_texto.value = ‘’;
pregunta_texto.style.display = ‘inline’;
respuesta_texto.style.display = ‘inline’;
}
if (radio_button_respuestas[i].value == no) {
pregunta_texto.style.display = ‘none’;
respuesta_texto.style.display = ‘none’;
}
}
}
}

grupo_radio_button_respuestas.onchange = function()
{
acciones_radio_button();
}
if (radio_button_respuestas!=null) acciones_radio_button();

Nerina, por las dudas no has probado acceder usando el google chrome e inspeccionando el codigo? A mi sirvio con ese explorador y me indico especificamente donde estaba incorrecto el script.

Fijate, ingresa a la encuesta, haciendo click derecho “inspeccionar elemento” para qeu puiedas ver el script .js y ver si se salta algun error.

Saludos

No lo he probado pero y mismo lo hago, y comento, gracias!!

Ahora si veo el error, el método del grupo no debe ser del Id sino del Name, de todos modos no refresca la pantalla, vos pudiste hacerlo en una encuesta tuya? gracias por ayudarme, saludos

hOLA Nerina, yo tenia error tb pero nada q ver con lo tuyo. Lo mio era un error en la llamada a la función.

Y con respecto al “refrescar” ctrol f5 varias veces. Eso me ha pasado, q no me tomaba el script actualizado (con firefox), por eso despues probe en google crome y ahi si aparecia actualizado

Hola Nerina,
el código que me pasaste tiene algunos errores de sintaxis y otros de uso de los elementos.


var grupo_radio_button_respuestas = document.getElementsById('fsc3_208_5_1005');

En ese caso el error es la “s” en “Elements”, este método es getElementById porque recupera un solo elemento. En el caso de getElementsByName se recupera un arreglo de elementos, todos aquellos que tengan el mismo tag Name.


function acciones_radio_button() {       
   for (i=0; i<radio_button_respuestas.length; i++) {           
      if (radio_button_respuestas.checked) {         
         if (radio_button_respuestas.value == si) {
            respuesta_texto.value = '';
            pregunta_texto.style.display = 'inline';
            respuesta_texto.style.display = 'inline';            
         }
         if (radio_button_respuestas.value == no) {
            pregunta_texto.style.display = 'none';   
            respuesta_texto.style.display = 'none';
         }      
      }   
   }
}

El error en esta sección de código es la forma de consultar los valores. El elemento radio_button_respuestas es el arreglo de todas las respuestas del radio button, por lo tanto deberías accederlo asi:
radio_button_respuestas[i].checked
radio_button_respuestas[i].value


if (radio_button_respuestas!=null) acciones_radio_button();

Ese control está mal, también tiene que ser sobre grupo_radio_button_respuestas.

Fijate corrigiendo esas cosas que debería funcionar bien.

Clara, discupá la demora en la respuesta, recién hoy pude ver estos temas.
Te cuento que lo probé y anda perfectamente.
Gracias!
Saludos
Nerina