Foros del Web » Programando para Internet » Javascript »

Problema con type button y onclick

Estas en el tema de Problema con type button y onclick en el foro de Javascript en Foros del Web. Hola buenas, llevo unos dias atascado con un boton y me gustaria que me ayudarais. El caso es que tengo un boton como type button ...
  #1 (permalink)  
Antiguo 22/06/2011, 05:06
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Problema con type button y onclick

Hola buenas,
llevo unos dias atascado con un boton y me gustaria que me ayudarais.

El caso es que tengo un boton como type button y un onclick que llama a una funcion de validacion.

Este es el codigo del boton:
<input type="button" value="Enviar" onclick="validar();"/>

Y este el de la funcion:

<script type="text/javascript">

function GEBI(id)
{return document.getElementById(id);}

***function validar()
{
alert("Activaste la funcion valida");
errores='';
if (GEBI('user').value=='' | GEBI('user').value.lenght>3)
{
errores+='Por favor ingrese el nombre y recuerde que debe tener más de 3 carácteres.<br />';
GEBI('user').focus();
}
if (GEBI('pass').value=='')
{
errores+='Por favor ingrese la contraseña<br />';
GEBI('pass').focus();
}
if (GEBI('pass').value!=GEBI('pass2').value)
{
errores+='Por favor las contraseñas deben coincidir.<br />';
GEBI('pass2').focus();
}
if (GEBI('nomest').value=='')
{
errores+='Por favor ingrese el nombre del establecimiento.<br />';
GEBI('nomest').focus();
}
if (GEBI('descrip').value=='')
{
errores+='Por favor ingrese la descripción del establecimiento.<br />';
GEBI('descrip').focus();
}
if (GEBI('telf').value==''|GEBI('telf').value.lenght! =9)
{
errores+='Por favor ingrese el teléfono.<br />';
GEBI('telf').focus();
}
if (GEBI('email').value=='')
{
errores+='Por favor ingrese el email.<br />';
GEBI('email').focus();
}else{
comprobar_email(email);
}
if (GEBI('lat').value==''|GEBI('lng').value=='')
{
errores+='Por favor ingrese las cooredenadas, puede hacerlo através de la dirección.<br />';
}
if(errores=='')
{

GEBI('form_mapa').submit();
}else
{
GEBI('validacion').innerHTML=errores;
return false;
}
</script>

Luego lo visualizo(o lo intento..) en una etiqueta:
<div id="validacion"></div>

El problema es que ni me llama la funcion porque no me ejecuta el alert, tengo otros javascript de googlemaps, es posible que interfieran?
O existe otra forma de llamar a la funcion?

Gracias de antemano.
  #2 (permalink)  
Antiguo 22/06/2011, 05:17
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Problema con type button y onclick

buenas,
te faltaba una llave de cierre de función, y la barra de 'or' tiene que ser doble ( || ), igual que los 'and', que tambien tiene que ser dobles ( && ). a mí así no me da errores de JS:

function GEBI(id)
{return document.getElementById(id);}

function validar()
{
alert("Activaste la funcion valida");
errores='';
if (GEBI('user').value=='' ||GEBI('user').value.lenght>3)
{
errores+='Por favor ingrese el nombre y recuerde que debe tener más de 3 carácteres.<br />';
GEBI('user').focus();
}
if (GEBI('pass').value=='')
{
errores+='Por favor ingrese la contraseña<br />';
GEBI('pass').focus();
}
if (GEBI('pass').value!=GEBI('pass2').value)
{
errores+='Por favor las contraseñas deben coincidir.<br />';
GEBI('pass2').focus();
}
if (GEBI('nomest').value=='')
{
errores+='Por favor ingrese el nombre del establecimiento.<br />';
GEBI('nomest').focus();
}
if (GEBI('descrip').value=='')
{
errores+='Por favor ingrese la descripción del establecimiento.<br />';
GEBI('descrip').focus();
}
if (GEBI('telf').value=='' || GEBI('telf').value.lenght!=9)
{
errores+='Por favor ingrese el teléfono.<br />';
GEBI('telf').focus();
}
if (GEBI('email').value=='')
{
errores+='Por favor ingrese el email.<br />';
GEBI('email').focus();
}else{
comprobar_email(email);
}
if (GEBI('lat').value=='' || GEBI('lng').value=='')
{
errores+='Por favor ingrese las cooredenadas, puede hacerlo através de la dirección.<br />';
}
if(errores=='')
{

GEBI('form_mapa').submit();
}else
{
GEBI('validacion').innerHTML=errores;
return false;
}}

saludos.
  #3 (permalink)  
Antiguo 22/06/2011, 05:21
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: Problema con type button y onclick

un par de cosas más que se me han escapado,

los tres asteriscos al principio de la función validar daban error de sintáxis también, no sé si los tenáis puestos para resaltar aquí en el foro la función o los tenías puestos en el código.

lo otro es que los 'distinto de' ( != ) tienen que ir ambos caracteres juntos, sino no lo entiende tenías puesto --> if (GEBI('telf').value=='' || GEBI('telf').value.lenght! =9)
  #4 (permalink)  
Antiguo 22/06/2011, 05:33
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: Problema con type button y onclick

Hola:

Tu formulario es inaccesible si se desactiva javascript, y también deja de servir si se produce algún error...

¿Por qué no usas mejor el tipo submit? Basta con enviar el valor false para que no pase esa validación... en este caso sería:

return (errores == "")

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 22/06/2011, 05:48
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con type button y onclick

Solucionado, la llave y los or.
Muchas gracias!

Etiquetas: onclick, type
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 16:47.