FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Reset y submit en un botón
Amigos, tengo un formulario que pasa a una página php que "hace cosas" y manda un saludo... bueno, clásico.
El caso es que muchos de los visitantes de mi página repiten (envían) el formulario más de una vez. Le dije a un amigo que probara esa parte del sitio y me comentó que después del saludo fue a la página anterior (la del formulario) y como estaban todos los datos que el había puesto, por un momento le quedó la duda de si el formulario se había mandado efectivamente. ¿Hay alguna forma de que antes de enviarse, el formulario se resetee?. Algo como poner un boton de Reset y Submit al mismo tiempo. |
#2
|
||||
|
||||
Hola elcigarra
Tienes dos posibilidades, utilizar un botón normal de esta forma: Código:
<input type="button" value="Enviar" onclick="this.form.submit(); this.form.reset()" /> Código:
<input type="submit" onclick="this.disabled=true" />
__________________
Lo importante no es saber, sino tener el e-mail del que sabe. |
#3
|
|||
|
|||
Hola
Cita:
Cita:
La solución que yo te propongo es más complicada que estas dos y no la he probado por lo que no se si funcionará: La idea es hacer tantos INPUTs ocultos como INPUTs visibles hayan, una vez se pulsa el botón de enviar y con javascript copias el contenido de los inputs visibles en los inputs ocultos, borras el contenido de los inputs visibles y envias el formulario. |
#4
|
||||
|
||||
Hola,
Pues luego de probar con varias cosas, por ejemplo tratar de que la página del formulario no fuera guardada en el caché del navegador... sin resultado, se me ocurrió una solución que acaso no sea muy elegante, pero, en fin, parecía funcionar... como no podía ser de otro modo: Código:
<script type="text/javascript"> function LimpiarFormulario(idFormulario) { return; frm = document.getElementById(idFormulario); if(frm) { for (i = 0; i < frm.elements.length; i++) { if(frm.elements[i].type === 'text') frm.elements[i].value = ''; } return true; } return false; } </script> Pero, resulta que probé después lo que el compañero JavierB propone, esto es, algo así: Código:
<input type="button" onclick="this.form.submit(); this.form.reset();" value="Enviar" /> |
#5
|
||||
|
||||
Yo acabo de probar esta opción y me envía correctamente el formulario, pero al darle al botón BACK, ahí siguen los datos...
... en IE, porque en FF sí desaparecen. // Saludos |
#6
|
||||
|
||||
Hola,
Pues toma ya... así es la verdad que sólo probé el asunto en Firefox... mal hecho, puesto que no hubiera funcionado en Internet Explorer (¿Entre cuántos más?)... gracias Román. Y en todo caso, ¿qué nos queda? ¿Recorrer los controles del formulario y borrar el contenido de las casillas de texto? Acaso también pudiera controlarse mediante una variable "de sesión" que el mismo usuario no enviara el formulario más de dos veces en la misma sesión... guardando en la variable de sesión su IP, por ejemplo... es lo que se me ha ocurrido al principio también, pero, al final no seguí por ese camino. |
#7
|
||||
|
||||
dec, ¿qué LimpiarFormulario no podría simplificarse así?
Código:
function LimpiarFormulario(idFormulario) { frm = document.getElementById(idFormulario); if (frm) { frm.reset(); } } |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Simular click en submit(imagen) de formularios web | RazoR | Internet | 9 | 17-03-2011 18:31:07 |
Transacción interrumpida por reset | Kafu | Firebird e Interbase | 2 | 20-04-2005 14:26:31 |
parametros en un boton | vetustas | Conexión con bases de datos | 2 | 06-11-2003 14:24:48 |
Jpg en un botón | Novás | Varios | 3 | 30-10-2003 15:40:09 |
Controles de un boton... | Tanix | Varios | 6 | 03-06-2003 09:56:08 |
|