Cita:
Iniciado por _cronos Con javascript, por ejemplo:
Código PHP:
<html>
<head><title>Formulario</title></head>
<body>
<form name="mi_formulario" action="">
<input type=text name=texto1 size=5>
<select name="misopciones">
<option value="opcion1"> opcion1
<option value="opcion2"> opcion2
</select>
<input type=submit onSubmit="validarenvio()" value="Enviar">
</form>
</body>
</html>
el script sería:
Código PHP:
<script>
funtion validarenvio(){
if(document.mi_formulario.texto1.value.length==0){
alert("Escribe el texto, por favor");
document.mi_formulario.texto1.focus():
return 0;
}
if(document.mi_formulario.misopciones.selectedIndex==0){
alert("Escoge una opción, por favor")
document.mi_formulario.misopciones.focus()
return 0;
}
document.mi_formulario.submit()
}
Suerte!
Hola otra vez:
_cronos:
Tu código no está del todo bien...
onsubmit (todas las letras minúsculas) es el manejador del evento submit y debe usarse en el tag form, y debe anteponerse la palabra return para procesar una posible cancelación si lo que recibe es false.
Cuando se usa el método submit, no es necesario usar un botón del tipo submit... o sea que si tu botón fuese del tipo button el resultado sería el mismo.
La cuestión es que tal como lo has puesto, el formulario se envía siempre, ya que usas un botón submit, y no existe el evento submit en tags que no sean "form"
Otra cosa importantísima... false y 0 son cosas distintas.
Otra cosa que siempre hay que considerar son los posibles errores, cuando se producen, se cancela la cancelación (vaya la redundancia) y el formulario se envía igual si se trata de un botón del tipo submit, así que siempre es aconsejable una doble validación (también en el servidor), además, los navegadores siempre tienen la opción de deshabilitar javascript.
Saludos