Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2014, 10:53
kai89
 
Fecha de Ingreso: enero-2010
Mensajes: 373
Antigüedad: 14 años, 3 meses
Puntos: 5
Validar input radio y contar los seleccionados

Hola, quiero obligatoriamente se seleccione una opción "input radio" en cada pregunta
y ademas que rellene los cajones de texto, los input text funcionan bien y el de radio no consigo sumar los que ha seleccionado:

Cita:
<script language="JavaScript">
//funcion que es llamada en el evento submit del formulario
function validar(){
//obtener el formulario para utilizarlo en la validacion
var frmFormulario=document.forms['test'];
//contar la cantidad de elementos que contiene el formulario
var iElementos=frmFormulario.elements.length;

//recorrer todos los elementos del formulario
for(var iCont=0;iCont<iElementos;iCont++){
//obtener el elemento actual para utilizarlo
var textos=frmFormulario.elements[iCont];

if(textos.type=='text' || textos.type=='radio'){


var num=0;
if (
trim(textos.value)=='Escriba la pregunta'
|| trim(textos.value)==''
|| trim(textos.value)=='Respuesta a'
|| trim(textos.value)=='Respuesta b'
|| trim(textos.value)=='Respuesta c'
|| trim(textos.value)=='Escriba una explicación'


){
//mostramos un mensaje al usuario
alert('Por favor, complete todos los campos del formulario.');
//enfocamos el campo que exta vacio
textos.focus();
//borramos el contenido del campo (podria contener espacios en blanco)
textos.value='';
//devolvemos false para que el formulario no sea procesado
return false;
}

else if ((textos.checked)){
var num = num+1;


if(num<3) {
alert('no selecciono 3 campos radio boton');

return false;


}}}}


if(!confirm('¿Desea almacenar los datos?')){
//el usuario indica que no desea almacenar los datos
//entonces devolvemos false para que el formulario no sea procesado
return false;
}
}

//funcion para eliminar los espacios al inicio y final de cualquier cadena
//en otros lenguajes se conoce como "trim", JavaScript no cuenta con ella
function trim(strTexto){
//eliminamos los espacios iniciales y finales, con expresiones regulares
return strTexto.replace(/^\s+/g,'').replace(/\s+$/g,'');
}
</script>
La parte que puse en rojo es la que no logro que funcione como yo quiero.

A ver si me podeis ayudar un poco, saludos.