|
La solución es sencilla, tan sólo tienes que usar un script en javascript que compruebe el valor de cada campo y en función de si se han seleccionado opciones envíe el formulario o muestre el mensaje de error:
1.-Lo primero que tienes que hacer es cambiar el botón de enviar por un botón normal, algo así como:
<input type="button" value="Enviar" name="enviar">
2.- Incluye en la definición del botón una llamada a la función que hará las comprobaciones, con lo que el botón quedará así:
<input type="button" value="Enviar" name="enviar" onclick="enviar()"></p>
3.- Incluye en cualquier parte de la página, preferiblemente antes de </HEAD> un script que haga las comprobaciones y envíe, en caso correcto, el formulario. Por si acaso, te he hecho un ejemplo:
<script language="javascript">
function enviar()
{
var textoError=''
if (document.forms[0].elements[0].value==0) {textoError+='El campo1 no puede ser nulo.\n'}
if (document.forms[0].elements[1].value==0) {textoError+='El campo2 no puede ser nulo.\n'}
if (document.forms[0].elements[2].value==0) {textoError+='El campo3 no puede ser nulo.\n'}
if (textoError)
{
alert(textoError)
return false
}
else document.forms[0].submit()
}
</script>
El ejemplo que te muestro puede resumirse así:
A.- Al pulsar el botón de evío se llama a la función enviar.
B.- La función busca el valor de los tres campos y si alguno de ellos es 0 añade un nuevo mensaje a la cadena textoError.
C.- Si la cadena textoError se queda vacía es porque todos los campos tienen un valor distinto de cero, y entonces envía el formulario.
D.- Si la cadena textoError no está vacía, es porque algún campo contiene el valor 0 y muestra los mensajes de error sin enviar el formulario.
Por último una aclaración: en el código de ejemplo he supuesto que en la página sólo existe un formulario y/o éste es el primero que aparece (por eso pone document.forms[0]...) si existierán más formularios en vez ...forms[0]... deberías poner ...forms[n]... siendo n el número de formulario contando el primero como 0.
Lo mismo puede aplicarse a ...forms[0].elements[0]... que hace referencia al primer campo del primer formulario, etc
Si algo no te ha quedado claro no dudes en preguntármelo.
Gracias, suerte y hasta pronto.
|