Foros del Web » Programando para Internet » Javascript »

Radios rebeldes

Estas en el tema de Radios rebeldes en el foro de Javascript en Foros del Web. Hola, les queria consultar si alguien tiene por ahi a mano un script que valide en el submit que todos los grupos de radio button ...
  #1 (permalink)  
Antiguo 12/01/2002, 11:23
 
Fecha de Ingreso: enero-2002
Mensajes: 47
Antigüedad: 22 años, 3 meses
Puntos: 0
Radios rebeldes

Hola, les queria consultar si alguien tiene por ahi a mano un script que valide en el submit que todos los grupos de radio button esten marcados, si no que tire mensaje de alerta.
Vale decir , algo asi:
pregunta 1: °a
°b
°c
°d
°e
pregunta 2: °a
°b
°c
°d
°e
pregunta 3: °a
°b
°c
°d
°e
submit ------->Si todos estan sin marcar tire mensaje de error.
Yo hice algo asi pero sin exito ya que siempre me tira que el mensaje de error,a un cuando hay marcados:
function valida()
{
with (document.form1)
{
if ((pregunta1.checked==true) && (pregunta2.checked==true) )
{
alert("ok, radios llenos");
return true
}
else
{
alert("Radios vacios");
return false;
}
}
}
Y una llamada en el submit onsubmit="return valida()"
Bueno, si saben les agradeceria me dieran su opinion o si tienen algun script parecido.
Un saludo para todos

  #2 (permalink)  
Antiguo 12/01/2002, 12:38
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: Radios rebeldes

Meli , la validación de objetos de tipo radio la haría de la siguiente manera:

<pre>&lt;html&gt;
&lt;head&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
function valorRadio(objeto) {
var valor = '' ;
for (var r=0; r&lt;objeto.length; r++)
if (objeto[r].checked) {
valor = objeto.value ;
break ;
}
return valor ;
}

function valida() {
with (document.frm) {
if (valorRadio(p1)=='') {
alert('Por favor, conteste la primera pregunta');
return false;
}
if (valorRadio(p2)=='') {
alert('Por favor, conteste la segunda pregunta');
return false;
}
if (valorRadio(p3)=='') {
alert('Por favor, conteste la tercera pregunta');
return false;
}
return confirm('Encuesta rellenada correctamente. ¿Continuar?');
}
}
// --&gt;
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form name=&quot;frm&quot; onsubmit=&quot;return valida();&quot;&gt;
Encuesta
&lt;hr /&gt;
Pregunta 1: &lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p1&quot; value=&quot;a&quot; /&gt;a&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p1&quot; value=&quot;b&quot; /&gt;b&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p1&quot; value=&quot;c&quot; /&gt;c&lt;br /&gt;
Pregunta 2: &lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p2&quot; value=&quot;a&quot; /&gt;a&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p2&quot; value=&quot;b&quot; /&gt;b&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p2&quot; value=&quot;c&quot; /&gt;c&lt;br /&gt;
Pregunta 3: &lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p3&quot; value=&quot;a&quot; /&gt;a&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p3&quot; value=&quot;b&quot; /&gt;b&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;p3&quot; value=&quot;c&quot; /&gt;c&lt;br /&gt;
&lt;hr /&gt;
&lt;input type=&quot;submit&quot; value=&quot;Enviar&quot; /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt; </pre>

Si tienes alguna duda, coméntamela.
Saludos.

<style>.t{font: 8pt verdana; text-decoration: none; color: black;}</style><hr><span class="t"><a href="mailto:[email protected]" class="t" style="font: 10pt;">Mikel Gómez</a><br>Hay que aprender mucho para saber poco.</span>
  #3 (permalink)  
Antiguo 12/01/2002, 23:23
 
Fecha de Ingreso: enero-2002
Mensajes: 47
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Radios rebeldes

Muchas gracias Mikel! me enviaron otros scripts por otro foro pero el tuyo fue el mejor para mi caso y lo pude implementar muy facilmente.Lo recomiendo!
SAludos.Meli
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 12:23.