Foros del Web » Programando para Internet » Javascript »

alertas en boton

Estas en el tema de alertas en boton en el foro de Javascript en Foros del Web. hice un sistema de encuestas y tengo el siguiente codigo <script languaje="javascript"> function validate(form){ for(var i = 0; i < form.selec.length; i++){ if(form.selec[i].checked)return true; } ...
  #1 (permalink)  
Antiguo 26/10/2011, 21:32
 
Fecha de Ingreso: octubre-2011
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
alertas en boton

hice un sistema de encuestas y tengo el siguiente codigo

<script languaje="javascript">


function validate(form){
for(var i = 0; i < form.selec.length; i++){
if(form.selec[i].checked)return true;
}
alert('Debes seleccionar al menos una opcion');
return false;
}
</script>
<form method="post" action="guardar_prueba.php">
¿que le gusta mas a las personas?<br>
<INPUT TYPE="radio" value="1" name="selec">chocolates<BR>
<INPUT TYPE="radio" value="2" name="selec">paletas<BR>
<INPUT TYPE="radio" value="3" name="selec">bombones<BR>
<INPUT TYPE="SUBMIT" VALUE="votar" onclick="validate(this.form)">

</form>

el cual me lanza una alerta que dice " debes seleccionar al menos una opción", cuando doy clic en el botón votar y no se elije alguna del las opciones del radio,
la pregunta es ¿como le hago para lanzar una alerta en el mismo boton cuando si marco uno de los botones?

para darme a entender mejor quiero que cuando seleccione un radio y doy clic en votar me salga una alerta que me diga "gracias por votar" y cuando no elija una de las opciones me siga saliendo "debes seleccionar al menos una opcion"
  #2 (permalink)  
Antiguo 27/10/2011, 00:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: alertas en boton

Hola:

Empezaremos arreglando el sistema de validación, porque se debe asociar el evento del envío y no en el click del botón (tal vez te falle tal como lo tienes...

<form onsubmit="return validate(this)"...>

Sobre la validación, si pones return dentro del for, solo chequeará el primer elemento, así que basta con un acumulado para este caso, pero hay alternativas...

radios = 0;
for(var i = 0; i < form.selec.length; i++){
if(form.selec[i].checked) radios++;
}

Y luego, si se queda en cero(0), es que no hay nada y puedes cancelar el mensaje, reservando el else para el agradecimiento...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/12/2011, 03:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 3
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: alertas en boton

encontré otra manera solo era agregar un and alert
quedo de esta forma en el if
for(var i = 0; i < form.selec.length; i++){

if(form.selec[i].checked)return true && alert('gracias por votar');
y quedo como lo queria
gracias por la respuesta
  #4 (permalink)  
Antiguo 12/12/2011, 03:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: alertas en boton

buenas,
notese lo que te indico @caricatos acerca donde deberías invocar la función, evento onsubmit. es recomendable en onsubmit porque un envio de formulario no necesariamente se activa al pulsar un botón submit. incluso se puede activar desde algunos campo presionando Enter. por otro lado, la expresión que tienes no cancelaría el envio cuando la validación no coincide. esta expresión, return true && alert('gracias por votar'); siempre devuelve undefined, y para cancelar un evento explicitamente debe ser un boolean false. la expresión anterior devuelve undefined porque todas las funciones devuelven dicho valor de forma implícita cuando internamente no tiene un return -incluyendo las funciones nativas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: php, botones, alerta
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 21:51.