[OT] Java Script enviar formulario + validacion

02/01/2007 - 14:31 por Búho | Informe spam
Estimados tod@s: Antes de nada, feliz 2007.
Al grano: tengo un formulario en una ASP que se llama así misma, funcionando
perfectamente, con una funcion en JavaScript que valida previamente, antes
de enviar, si los campos del formulario están rellenos etc:
El codigo del botón es:
<input TYPE="button" VALUE="Enviar" onClick="Validar(this.form)">
Correcto..funciona perfectamente y al hacer Click en el boton se llama a la
funcion Validar que está definida en otra parte de la ASP.
¿Que quiero?
Quitar el botón y poner una imagen. Sé que este código funciona:
<A href="javascript:document.frm.submit();"><IMG src="enviar.gif"
border="0"></A>

Lo que no he sido capaz es de conjuntar ambas sentencias. Es decir: Pretendo
quitar el boton y poner una imagen para enviar el Form, peeeeero que
previamente a enviar, sean validados los campos por la función Validar()

Saludos y gracias.


Saludos desde Valladolid
Francisco Javier García Aguado


http://accessbuho.mvps.org/index.htm
http://www.mvp-access.com/foro

Preguntas similare

Leer las respuestas

#1 urko binarya
02/01/2007 - 15:22 | Informe spam
puedes poner esto
<A href="javascript:Validar()"><IMG src="enviar.gif"
border="0"></A>

y luego en la funcion validar()
si es todo correecto hacer un
document.frm.submit()

y quitar del la etiqueta <form.. la funcion onsubmit="" si la
tienes.

saludos
urko
Respuesta Responder a este mensaje
#2 Búho
02/01/2007 - 15:38 | Informe spam
Hola Urko, gracias por contestar.
ya había probado de esta otra forma muy parecida a la que comentas:

<A href="javascript:Validar(this.form);"><IMG src="contestar.jpg"
border="0"></A>:

Ten en cuenta que la funcion JS Validar, debe recibir el parametro
«Formulario»

<script LANGUAGE="JavaScript">

function Validar(form)
{
if (form.nick.value == "")
{ alert("Por favor introduzca su Nick"); form.nick.focus(); return; }

if (form.nuestromensaje.value == "")
{ alert("Por favor introduzca nuestro mensaje original");
form.nuestromensaje.focus(); return; }


if (form.email.value == "")
{ alert("Por favor introduzca su cuenta de correo para poder
contestarle"); form.email.focus(); return; }

if (form.email.value.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig))
{alert("La cuenta de correo no es válida, debe tener el formato
");
form.email.select();
form.email.focus();
return;}
if (form.sumensaje.value == "")
{ alert("Por favor introduzca sus comentarios"); form.sumensaje.focus();
return; }

alert("Su mensaje será recibido por el equipo de programación.");
form.submit();
}

</script>

En cualquiera de los casos, al poner el codigo, se me produce un error «nick
es nulo o no es un objeto»
Como si no reconociera if (form.nick.value == "") de la funcion
Validar(form)...
Y en esas estamosque no sé si realmente se puede pasar el parametro
this.form en la forma que lo hago: <A
href="javascript:Validar(this.form);">...por lo que veo, o es que NO o me
falta un detalle...
Muchas gracias





Saludos desde Valladolid
Francisco Javier García Aguado


http://accessbuho.mvps.org/index.htm
http://www.mvp-access.com/foro
Respuesta Responder a este mensaje
#3 Matías Iacono
02/01/2007 - 16:26 | Informe spam
Porque no pruebas con pasarle el nombre del formulario en una variable?

Si no puedes pasarle el formulario como objeto, puedes pasar el nombre del
mismo, y construir la misma expresion que quieres ejecutar pero como una
variable string.

Luego, usar eval para evaluar esta expresion. Eval ejecuta el codigo
contenido en un string y lo evalua contra codigo real. O sea, si dentro de
este string tienes una variable o nombre de una variable que esta en el
contexto, asume que es la misma variable y la ejecuta.

Por ejemplo:

var Variable1
Variable1 = 1;
eval("Variable1++");

Variable1 seria igual a 2, aunque en este caso es tratada como un string.

En tu caso, puedes hacer exactamente lo mismo.

Saludos.

Matías Iacono
Microsoft MVP
Orador Regional INETA
"Búho" escribió en el mensaje
news:
Hola Urko, gracias por contestar.
ya había probado de esta otra forma muy parecida a la que comentas:

<A href="javascript:Validar(this.form);"><IMG src="contestar.jpg"
border="0"></A>:

Ten en cuenta que la funcion JS Validar, debe recibir el parametro
«Formulario»

<script LANGUAGE="JavaScript">

function Validar(form)
{
if (form.nick.value == "")
{ alert("Por favor introduzca su Nick"); form.nick.focus(); return; }

if (form.nuestromensaje.value == "")
{ alert("Por favor introduzca nuestro mensaje original");
form.nuestromensaje.focus(); return; }


if (form.email.value == "")
{ alert("Por favor introduzca su cuenta de correo para poder
contestarle"); form.email.focus(); return; }

if (form.email.value.search(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/ig))
{alert("La cuenta de correo no es válida, debe tener el formato
");
form.email.select();
form.email.focus();
return;}
if (form.sumensaje.value == "")
{ alert("Por favor introduzca sus comentarios"); form.sumensaje.focus();
return; }

alert("Su mensaje será recibido por el equipo de programación.");
form.submit();
}

</script>

En cualquiera de los casos, al poner el codigo, se me produce un error
«nick es nulo o no es un objeto»
Como si no reconociera if (form.nick.value == "") de la funcion
Validar(form)...
Y en esas estamosque no sé si realmente se puede pasar el parametro
this.form en la forma que lo hago: <A
href="javascript:Validar(this.form);">...por lo que veo, o es que NO o me
falta un detalle...
Muchas gracias





Saludos desde Valladolid
Francisco Javier García Aguado


http://accessbuho.mvps.org/index.htm
http://www.mvp-access.com/foro



Respuesta Responder a este mensaje
#4 urko binarya
02/01/2007 - 18:12 | Informe spam
le podrias pasar el id del formulario
tendrias un form asi
<form action="" id="miformulario"->

Validar('miformulario');"><

y lueggo en validar
function validar(formulario)

var Formularioid = document.getElementById(formulario);
Formularioid.submit();


y ahora que me doy cuenta tienes
function Validar(form)
y igual tienes problemas al llamar a la variable form, no sera una palabra
reservada??
prueba a cambiarle de nombre

saludos
urko
Respuesta Responder a este mensaje
#5 Búho
02/01/2007 - 22:55 | Informe spam
Matías, Urkoos agradezco de verdad vuestras respuestas.
He comenzado implementando la de Urko y va perfecta, es lo que buscaba.
Matías no dudo que tambien con Eval() funcionará, seguro.
Un saludo cordial a ambos y gracias por haberme enseñado algo más



Saludos desde Valladolid
Francisco Javier García Aguado


http://accessbuho.mvps.org/index.htm
http://www.mvp-access.com/foro
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida