Foros del Web » Programando para Internet » Javascript »

Encadenar acciones dentro onSubmit

Estas en el tema de Encadenar acciones dentro onSubmit en el foro de Javascript en Foros del Web. Pues eso, dentro de onSubmit quiero poner la acción de no dejar el botón enviar activo después del envió del formulario una vez este es ...
  #1 (permalink)  
Antiguo 05/04/2007, 03:49
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Encadenar acciones dentro onSubmit

Pues eso, dentro de onSubmit quiero poner la acción de no dejar el botón enviar activo después del envió del formulario una vez este es valido y se ha enviado, osea, quiero encadenar las acciones y que no se me repita el envió

A parte, porque el script de comprobación del email, si la dirección es buena, no sigue con el resto del script y hace el submit? Que falla en el codigo?

Y otra cosa, el controlador de campo que permite solo numKeys solo me funciona en Explorer, en Firefox y otros no, alguno mas compatible?

Por cierto, para que sirve esta linea de codigo? document.body.style.cursor = "wait";

En head
Cita:
<script language="javascript">
//--No Funciona con Firefox, comprobar una mas compatible.
function SoloNum(form){
var key=window.event.keyCode;//codigo de tecla.
if (key < 48 || key > 57){//si no es numero
window.event.keyCode=1;//anula la entrada de texto.
}
}
function ValidarForm(form) {
if (form.nombre.value == "") {
alert("Debe colocar su Nombre.");
form.nombre.focus();
return false;
}
if (form.apellidos.value == "") {
alert("Debe colocar su Apellido.");
form.apellidos.focus();
return false;
}
if (form.edad.value == "") {
alert("Debes colocar tu edad.");
form.edad.focus();
return false;
}

if (form.pais.value == "") {
alert("Debes escribir tu pais.");
form.pais.focus();
return false;
}
var pos1, pos2, bOk = true;
var semail = form.email.value;
if (semail == ""){
alert("Por favor ingrese su dirección de correo");
form.email.focus();
return false;
}
pos1 = semail.indexOf('@', 0);
pos2 = semail.indexOf('.', 0);
bOk = bOk && (pos1 > 0);
bOk = bOk && (pos2 != -1);
bOk = bOk && (pos1 < pos2 - 1);
bOk = bOk && (pos2 < sDir.length - 1);
if (!bOk){
alert("Dirección de correo inválida");
form.email.focus();
return false;
}
if (form.contraseña.value == "") {
alert("Debe introducir una contraseña.");
form.contraseña.focus();
return false;
}
if (form.contraseña2.value == "") {
alert("Confirma tu contraseña.");
form.contraseña.focus();
return false;
}
if (form.accondiciones.checked)
form.submit()
else
alert("Debes de aceptar las condiciones antes de enviar");
return false;

document.body.style.cursor = "wait";
return true;
}
</script>

En Body
Cita:
<form action="" method="post" name="form" onSubmit="return ValidarContacto(this)" "document.forms[0].enviar.value='Por favor espere un momento';document.forms[0].enviar.disabled=true;" >
<table width="100%" border="0" cellspacing="3px">
<tr>
<td width="50%"><div align="right">Nombre</div></td>
<td width="50%"><div align="left">
<input name="nombre" type="text" class="comentario" id="nombre" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">Apellidos</div></td>
<td><div align="left">
<input name="apellidos" type="text" class="comentario" id="apellidos" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">Edad</div></td>
<td><div align="left">
<input name="edad" type="text" class="edad" id="edad" size="5" maxlength="2" />
</div></td>
</tr>
<tr>
<td><div align="right">Pais</div></td>
<td><div align="left">
<input name="pais" type="text" class="comentario" id="pais" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">E-mail</div></td>
<td><div align="left">
<input name="email" type="text" class="comentario" id="email" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">Contrase&ntilde;a</div></td>
<td><div align="left">
<input name="contraseña" type="password" class="comentario" id="contrase&ntilde;a" size="15" />
</div></td>
</tr>
<tr>
<td><div align="right">Repetir contrase&ntilde;a </div></td>
<td><div align="left">
<input name="contraseña2" type="password" class="comentario" id="rcontrase&ntilde;a" size="15" />
</div></td>
</tr>
<tr>
<td><div align="center"><span class="Estilo1">He leido las <a href="Index2.html"><u>condiciones</u></a> - </span><span class="Estilo2">Acepto</span>
<input name="accondiciones" type="checkbox" id="aceptarcond" value="checkbox" />
</div></td>
<td>
<div align="left">
<input name="Submit2" type="submit" class="boton_enviar" value="Enviar" />
</div></td>
</tr>
</table>
</form>
Gracias

Última edición por realxp; 05/04/2007 a las 05:01 Razón: Modificacion peticiones
  #2 (permalink)  
Antiguo 05/04/2007, 07:58
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: Encadenar acciones dentro onSubmit

Hola:

Sobre el cursor, se trata de que se muestre el reloj típico de espera (en windows es de arena y en los mac uno analógico)...

Sobre la pregunta de las acciones... la cuestión es hacer la operación lógica "Y" (and) con todas las acciones:

onsubmit="return (validar1(this) && validar2(this)"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 06/04/2007, 05:13
 
Fecha de Ingreso: abril-2007
Mensajes: 31
Antigüedad: 17 años
Puntos: 0
Re: Encadenar acciones dentro onSubmit

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Sobre la pregunta de las acciones... la cuestión es hacer la operación lógica "Y" (and) con todas las acciones:

onsubmit="return (validar1(this) && validar2(this)"...

Saludos
Gracias por responder, pero aun sigue sin ser funcional, el script de bloqueo de botón enviar mas de una vez, lo he sacado del FAQ he modificado el nombre del botón enviar por el de submit2 que es el que tiene, y aun y así, ahora mismo, no se me ejecuta ningún script del formulario.

Cita:
onSubmit="return ValidarForm(this) && document.forms[0].submit2.value='Por favor espere un momento';document.forms[0].submit2.disabled=true;
En que parte de la sintaxis esta mal?
  #4 (permalink)  
Antiguo 06/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: Encadenar acciones dentro onSubmit

Hola:

Si pretendes ser webmaster, te propongo que analices tu código...

Código:
onSubmit="return ValidarForm(this) && document.forms[0].submit2.value='Por favor espere un momento';document.forms[0].submit2.disabled=true;
Código:
onSubmit="return ValidarForm(this) && [algo que devuelva un valor lógoco (true/false)]..."
Código:
onSubmit="document.forms[0].submit2.value='Por favor espere un momento';document.forms[0].submit2.disabled=true; /*...2 acciones que no devuelven ningún valor lógico... sin sentido en una validación*/
Pregunta cuanto quieras, pero antes procura entender lo que te he apuntado.

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 16:39.