Foros del Web » Programando para Internet » Javascript »

botón enviar desactivado

Estas en el tema de botón enviar desactivado en el foro de Javascript en Foros del Web. hola. en una consulta anterior preguntaba como poder validar que los campos de un formulario estaban cumplimentados y en caso contrario, diera un mensaje de ...
  #1 (permalink)  
Antiguo 07/04/2007, 02:18
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
botón enviar desactivado

hola. en una consulta anterior preguntaba como poder validar que los campos de un formulario estaban cumplimentados y en caso contrario, diera un mensaje de error, pero no a través de la típica ventana de alert! sino en el propio formulario. esto se solucionó con esta función:

Código HTML:
<script language="JavaScript">
function valida(){
	if(document.getElementById("nombre").value==''){
		document.getElementById("nombre2").style.visibility='visible';
		return false;
	}else{
		document.getElementById("nombre2").style.visibility='hidden';
	}		
}
</script>
<body>
<form name="form1" method="post" action="">
  <table width="75%" border="0">
    <tr><td>Nombre():</td><td><input type="text" id="nombre" onBlur="valida();"></td></tr>
    <tr><td></td>
      <td id="nombre2" style="visibility:hidden">Campo Nombre Obligatorio.</td>
    </tr>
    <tr><td>Apellidos:</td><td><input type="text" name="textfield2"></td></tr>
    <tr><td></td><td></td></tr>
  </table>
  <input type="button" name="valida	" value="Valida" onClick="valida();">
</form>
</body> 
bien. mi consulta ahora viene en dos sentidos. supongamos que tengo dos campos por validar. cómo adaptaría esa función? o debería ir creando una nueva función por cada campo que quiera validar?

la segunda cuestión es la siguiente: yo no quiero que el botón 'enviar' aparezca activo en tanto en cuanto no estén cumplimentados esos dos campos. cómo hago esto?
  #2 (permalink)  
Antiguo 07/04/2007, 07:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: botón enviar desactivado

Hola:

No he visto el mensaje, pero no veo bueno ese sistema de validación... ya que el botón no es del tipo submit...

Para un par de controles que no estén vacíos, un sistema sería:

function validar(f) {
valida = (f.control1.value != "") &&(f.control2.value != "");
document.getElementById("nombre2").style.display = (valida) ? "inline" : "none";
return valida;
}

Los controles serían "control1" y "control2"... y por supuesto la validación definida en el tag form en el evento submit.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/04/2007, 07:44
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: botón enviar desactivado

Cita:
Iniciado por caricatos Ver Mensaje
No he visto el mensaje, pero no veo bueno ese sistema de validación... ya que el botón no es del tipo submit...
Hombre es otra forma de hacerlo, lo que le faltaría poner lo siguiente para enviar en los datos en caso de que estuviera todo correcto:

Código:
document.forms["form1"].submit();
O eso o enviarlo por AJAX, con lo que no necesitas ningún submit.

Aparte de lo que te comenta Caricatos que está bien, deberías controlar también por ejemplo, si en un cuadro de texto han introducido sólo espacios (busca por aquí alguna función de trim).

Y para números te recomiendo que le eches un vistazo a parseInt(), ya que tiene "sorpresas"... por ejemplo si el usuario introduce "100 200" te devolvería 100, también hay sorpresa si introduce algo como "0x900"... Lo mejor para estos casos es validar toda la cadena carácter a carácter con un bucle o mejor con una expresión regular.

Y repito... cuidadín con parseInt... que si haces lo siguientes verás que la variable "num" es numérica y su valor es NaN (no es un número)...

Código:
var num  = parseInt( "" );
alert( typeof(num) + " -> " + num );
Cosas del javaScript...

Última edición por MikiBroki; 07/04/2007 a las 07:59
  #4 (permalink)  
Antiguo 07/04/2007, 07:51
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: botón enviar desactivado

Cita:
Iniciado por MikiBroki Ver Mensaje
Hombre es otra forma de hacerlo, lo que le faltaría poner lo siguiente para enviar en los datos en caso de que estuviera todo correcto:

Código:
document.forms["form1"].submit();
...
Cosas del javaScript
O sea que si el visitante tiene desactivado javascript...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 07/04/2007, 07:56
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: botón enviar desactivado

Hombre eso ya se controla al cargar la página jejej... además sin javascript activado tampoco se podría validar en cliente.
  #6 (permalink)  
Antiguo 07/04/2007, 08:46
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: botón enviar desactivado

gracias a los dos pero me habéis dejado igual. no tengo tanto control como vosotros sobre el tema, pero el meteros en la discusión de si es mejor esto o aquello ha hecho que mis dos problemas en cuestión desde mi punto de vista queden igual que estaban. es decir, necesito saber cuál es la mejor solución para adaptar esa función cuando son más de un campo a validar y por otro lado, desactivar el botón enviar en tanto en cuanto no estén cumplimentados los campos.

p.d.: ah, por cierto, el botón si es tipo submit, aunque ahí vaya como 'button'
  #7 (permalink)  
Antiguo 07/04/2007, 09:51
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: botón enviar desactivado

Cita:
Iniciado por MikiBroki Ver Mensaje
Hombre eso ya se controla al cargar la página jejej... además sin javascript activado tampoco se podría validar en cliente.
Sin javascript no se valida en cliente, pero los formularios se envían (por esa razón se aconseja hacer doble validación... )

Cita:
Iniciado por estibaliz2006 Ver Mensaje
p.d.: ah, por cierto, el botón si es tipo submit, aunque ahí vaya como 'button'
La respuesta que te dí antes es para este caso... intenta adaptarla.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 07:20.