Inicio > Javascript > newdavinci > Hacer un mensaje de alerta

Hacer un mensaje de alerta

Experto:
Usuario:
Fecha: 04/12/2008
Valoración: (5,00 sobre 5) Categoría: Javascript
04/12/2008
pedroche, usuario preguntando en Javascript
Usuario
Hola de nuevo experto. Necesitaria saber como hacer que salte un mensaje de alerta al seleccionar un valor de un list/menu. Me explico, tienes tres campos y un boton de enviar. En cada campo tienes, por ejemplo, 5 valores y un sexto, que seria el primero de los seis, que pone seleccione una opción, y cuyo valor es 0. Así los 3 list/menu. Lo que quiero es que cuando le das al boton enviar, si te has dejado en alguno de los menus la opción "seleccione una opción", cuyo valor es 0, te salga un mensaje de alerta que te diga que esa no es una opción erronea. Quiero hacerlo como lo tienen en www.idealista.com y mi web es www.aunpaso.com, por si quieres ver exactamente los campos y los valores. Muchiiiiisimas gracias
04/12/2008
pedroche, experto respondiendo en Javascript
Experto
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.
04/12/2008
pedroche, usuario preguntando en Javascript
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados