Foros del Web » Programando para Internet » Javascript »

Problemas con validacion de un objeto radio

Estas en el tema de Problemas con validacion de un objeto radio en el foro de Javascript en Foros del Web. Tengo la siguiente funcion: Código: function validarBotonRadio() { var marcado = "no"; with (document.pagos) { for ( var i=0; i< pago.length; i++) { if (pago[i].checked) ...
  #1 (permalink)  
Antiguo 14/02/2008, 14:33
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Problemas con validacion de un objeto radio

Tengo la siguiente funcion:

Código:
function validarBotonRadio()
{
var marcado = "no";
with (document.pagos)
{
	for ( var i=0; i< pago.length; i++)
	{
		if (pago[i].checked)
		{
			return true;
		}	
	}
		if (marcado == "no")
		{
			window.alert("Debe seleccionar su opción de pago");
			return false;
		}
	}
}
En la misma pagina interactuo con PHP para que me aparezcan varias opciones de pago.
El problema que tengo es que cuando veo solo un radio aunque lo marque la funcion que coloque al principio me sigue desplegando la ventana de alerta "Debe seleccionar su opción de pago". Cuando me aparecen 2 o mas funciona correcto.
El formulario donde esta todo se llama pagos, el nombre del objeto radio es pago.

Codigo de form y objeto radio:

Objeto radio:

Código:
<input name="pago" type="radio" value="1">
Objeto Formulario:

Código:
<form name="pagos"....
Boton que ejecuta la accion de la funcion:

Código:
<a href="javascript:document.pagos.submit();" onClick = "return validarBotonRadio();"...
Lo ejecuto de esta manera porque lo interactuo con una imagen de boton.

Bueno espero que entiendan el problema y gracias, saludos
  #2 (permalink)  
Antiguo 15/02/2008, 02:37
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Re: Problemas con validacion de un objeto radio


if (pago[i].checked)
{
marcado="sí";
return true;
}

Incluso podrías hacerlo así:

function validarBotonRadio()
{

with (document.pagos)
{
for ( var i=0; i< pago.length; i++)
{
if (pago[i].checked)
{
break;
}
}
if (i == pago.length)
{
window.alert("Debe seleccionar su opción de pago");
return false;
}
}
}
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 15/02/2008, 08:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problemas con validacion de un objeto radio

Me gusto tu idea, dejame que la pruebo y te aviso como me fue, gracias
  #4 (permalink)  
Antiguo 15/02/2008, 09:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problemas con validacion de un objeto radio

Probe la funcion y esta buena, ahora lo que no me hace es que si no marca nada tambien me lo ejecuta, esto me acarrea un problema mas adelante (al no marcar nada ese valor se va vacio y me hace cambiar otras logicas que tengo en el sistema, por supuesto que las puedo cambiar). La pregunta es si puedo que al no marcar nada no me avance?, se puede?, gracias y saludos
  #5 (permalink)  
Antiguo 15/02/2008, 09:33
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problemas con validacion de un objeto radio

Hola jprolando

Tienes que poner el formulario así:

Código:
<form onsubmit="return validarBotonRadio()">
Saludos,
  #6 (permalink)  
Antiguo 15/02/2008, 12:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problemas con validacion de un objeto radio

Bueno si coloco en el form algo no me da pelota. Recordar que la accion la tengo en un boton.

Codigo del boton:

Código:
<a href="javascript:document.pagos.submit();" onClick = "return validarBotonRadio();" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('confircompra','','img/confirmacompra1.png',1)"><img src="img/confirmacompra.png" name="confircompra" width="80" height="30" border="0"></a>
pagos es el nombre del formulario, gracias y saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:14.