Foros del Web » Programando para Internet » Javascript »

Como detener un form

Estas en el tema de Como detener un form en el foro de Javascript en Foros del Web. Buenos dias, como puedo detener un formulario en javascript, se que haciendo form1.submit se envia, pero como lo detengo si encuentro un error en algun ...
  #1 (permalink)  
Antiguo 15/04/2006, 10:24
 
Fecha de Ingreso: marzo-2006
Mensajes: 329
Antigüedad: 18 años, 1 mes
Puntos: 1
Como detener un form

Buenos dias, como puedo detener un formulario en javascript, se que haciendo form1.submit se envia, pero como lo detengo si encuentro un error en algun campo del formulario, gracias
  #2 (permalink)  
Antiguo 15/04/2006, 10: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
Hola jasamestica:

La forma que yo suelo aconsejar en los formularios es validarlo durante el envío y el validador debe devolver true si pasa la validación o false en caso contrario.

<form action="destino.php" onsubmit="return validar(this)" ...>
... y por ejemplo para no permitir el envío si no se llenó el campo email...

function validar(f) {
return (f.email.value != "");
}

Hay en las FAQs un validador muy completo...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 15/04/2006, 10:52
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
También podrías usar un <input type="button" onClick="validar()"> en lugar de submit.

Si el formulario está bien validado, desde la misma función validar() lo procesas y si no, pues no, =)

Así, si algún listillo quiere meterte datos falsos (corruptos) desactivando Javascript en su navegador, el botón submit (que en realidad es un simple botón) no enviará nada.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #4 (permalink)  
Antiguo 15/04/2006, 16:03
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
Iniciado por uamistad
Así, si algún listillo quiere meterte datos falsos (corruptos) desactivando Javascript en su navegador, el botón submit (que en realidad es un simple botón) no enviará nada.
si pero le crearias un problema a quienes por algun motivo tienen un navegar que no soporta alguna linea de la validacion.

Me parece qu elo mas aconsejable es utilizar el metodo que bien describe caricatos y, si los datos son relativamente importantes ,filtrarlos con lenguaje del lado del servidor.


saludos
__________________
by Capitán Buscapina
.
  #5 (permalink)  
Antiguo 15/04/2006, 18:03
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por uamistad
... el botón submit (que en realidad es un simple botón) no enviará nada.
El botón submit no es un simple botón, ni el reset... me extraña que pienses así...

Un simple botón es genérico (type="button"), pero el submit tiene una función muy valiosa (y el reset también)
... y como dices, si se desactiva javascript sería imposible enviar el formulario... ¿para qué serviría entonces...?

Con las webs semánticas se pretende que cada elemento de una página tenga su correcto sentido, y en un formulario un botón submit tiene el sentido de "envío"... y el manejador de eventos onsubmit debe usarse para confirmación/validación...

Hay otro vicio muy común y poco semántico que es usar enlaces para activar scripts... o anularlos con return false.

Escribí un artículo que trata del tema: http://www.maestrosdelweb.com/editorial/formenlaces/

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 15/04/2006, 22:09
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
De acuerdo

Hola, ups, parece que no me entendí, compa =). No quise decir que el botón submit sea un simple botón.

Lo que quería decir en ese párrafo es que si alguien desactiva Js por hacerse pasar un muy listillo, cuando presionen el botón que 'se supone tendría la función de submit', no funcionará, ya que en realidad es un simple botón.

Cita:
si pero le crearias un problema a quienes por algun motivo tienen un navegar que no soporta alguna linea de la validacion.
Creo que aquí cada quién tiene sus opiniones al respecto. Por ejemplo, soy de la idea de hacer sitios para gente que tenga activado su JavaScript y los que no, que se coman el pasto .

No es en vano mi posición, chequen esta gráfica:


Fuente: http://www.statcounter.com/features/#javascript-stats

En lugar de dividir mi tiempo para hacer un sitio de dos caras, mejor lo uso para hacerlo de una sola cara (sólo para los que tienen Javascript Enabled) y los que no, ni modo.

Estoy de acuerdo contigo Caricatos en que el efecto es el mismo de usar "return validar()" que con lo que yo hago ahorita, incluso usé esa forma un tiempo porque lo que sé de Js lo aprendí aquí en el foro viendo mensajes, e incluso más correcto usar a submit como lo que es, ¿vale? Estoy de acuerdo con eso.

Pero tomando en cuenta que la gente que navegue sin Javascript Enabled puede enviar el formulario con esa forma, desde mi muy personal punto de vista, estoy permitiendo y promoviendo que el usuario siga navegando por el mundo sin Js enabled.

Me basta con mostrarle un mensaje al inicio de la página (obviamente no sería generado con Js, quizá con noscript tag, quizá con get_browser() ) diciéndole que no puede usar la página bien hasta que lo active o cambie de navegador.

El sitio que ando haciendo (y los que están en la agenda) son en su mayoría dinámicos, algunos usarán AJAX (el motivo por el que decidí aprender Js) y no pretendo ser misericordioso con toda persona que pase por mi web.

El que cumpla con los requisitos técnicos para usar el sitio (un 98% según gráfica) bienvenido, que disfrute un sitio bonito, agradable y diferente de la competencia. El que no, gracias por su visita y adiós.

Pero como digo, llegando a este punto, todos pensamos diferente. =)

Saludos y les agradezco su opinón, muy respetable.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #7 (permalink)  
Antiguo 16/04/2006, 03: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
Cita:
Iniciado por uamistad
... cuando presionen el botón que 'se supone tendría la función de submit', no funcionará, ya que en realidad es un simple botón.

Saludos y les agradezco su opinón, muy respetable.
¡ERROR!

Código:
<html>
<body>
<form action="" method="get" onsubmit="alert('enviar')">
<input type="hidden" name="prueba" value="Ok" />
<input type="submit" />
</form>
</body>
</html>
Enviando este formulario con javascript: salta la alerta y se envía el formulario...
Lo mismo con javascript inhabilitado: No salta la alarma pero el formulario se envía (ver url)

En lo único que pongo énfasis es en el componente semántico de la web... (sé que a veces puedo parecer pesado)... para formularios el envío tendría que hacerse con botones submit, los enlaces con etiquetas de enlace (a, area) y el resto de scripts con botones o elementos normales.

Bueno, saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 16/04/2006, 04:38
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por caricatos
En lo único que pongo énfasis es en el componente semántico de la web...
Y en la accesibilidad!...

Cita:
Iniciado por uamistad
soy de la idea de hacer sitios para gente que tenga activado su JavaScript y los que no, que se coman el pasto .
Que mal que pienses así --yo navego sin JS--, en serio... pero bueno, bendita libertad .

Técnicamente es un error lo que propónes y si verdaderamente alguien quiere violar tu validación JS puede hacerlo... una vez entregado el documento es del cliente, y puede editarlo --sabrás de GreaseMonkey, solo un ejemplo--, el argumento no es válido.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 16/04/2006, 06:22
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Mr. Jam, acabo de ver sus mensajes y apenas me entero de qué es GreaseMonkey en la Wikipedia, creo que con eso se acabaron mis protecciones fantasma, jaja.

Cita:
Que mal que pienses así --yo navego sin JS--, en serio... pero bueno, bendita libertad .
Exacto !! Bendita libertad. Conocerás gente que le gusta diseñar en Flash (yo lo detesto), pero es su estilo de hacer webs y bien por ellos.

Bueno, pues has de cuenta que mi estilo es (o se está transformando en) hacer cosas con Javascript (aunque todavía me falta mucho por aprender) y después me inclinaré un poco hacia ajax, no pretendo hacer una web para todos, si alguien navega con lynx que no pretenda ver los GoogleMaps, ¿me explico? Si no mejor que pase de largo que le vaya bien, =)

Como dije hace rato, en lugar de dividir mi tiempo para hacer un sitio de dos caras, mejor lo uso para hacerlo de una sola cara (sólo para los que tienen Javascript Enabled) y los que no, ni modo. ¿Eso está mal?

Ayer apenas creo fui a firmar la web de mi master caricatos, entra ahora sin activar Js, no es muy navegable, pero bueno, no es para todos.

¿Y que pasa con la usabilidad de mis sites? Yo respondería: Es perfecta para el 98% de mis visitantes.

No hay que exagerar, cuates.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #10 (permalink)  
Antiguo 16/04/2006, 06:35
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Caricatos, más bien me refería a formularios como estos: (aunque este de ejemplo no tiene mucho sentido, jeje)

Código:
<form name="formulario" action="anywhere.html" method="post"> 
<input type="radio" value="001">Opción 1<br/>
<input type="radio" value="002">Opción 2<br/>
<input type="radio" value="003">Opción 3<br/>
<input type="radio" value="004">Opción 4<br/>
<input type="radio" value="005">Opción 5<br/>
<input type="button" value="enviar" onClick="validar()">
</form>
Ok, ok, está mal hecho. Y es que en mi afan de querer proteger todo, de bloquear IP's cuando empiezan a llegar mensajes a mi foro en serie, de evitar que jueguen con eso de activar/desactivar Js pues fue lo que mejor me pareció cuando elegi ese método.

Yo lo llamo: obsesionado con la seguridad. Jaja, y todo para que un expert como Jam diga: "ahhh, ese capullo, cree que hace las cosas seguras", jeje, pero aceptemos que no todos saben lo que él.

Voy a digerir con calma lo que han platicado aquí, ¿vale? Y les agradezco por opinar, pues es importante aunque no tenga que ver directamente con el tema del foro.

Thanks =)
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #11 (permalink)  
Antiguo 16/04/2006, 07:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por uamistad

...Ayer apenas creo fui a firmar la web de mi master caricatos, entra ahora sin activar Js, no es muy navegable, pero bueno, no es para todos.

¿Y que pasa con la usabilidad de mis sites? Yo respondería: Es perfecta para el 98% de mis visitantes.

No hay que exagerar, cuates.
Hola:

Ya había visto tu firma (me envío recordatorios con los nuevos mensajes...)

Sobre la web navegable... la verdad es que puedes tener razón... también hago mis páginas para los que tienen javascript activo... (digo que "puedes" porque no suelo probarla sin javascript, y no me extrañaría que se viera fatal con js desactivado)

Mi web, es un complemento de mi trabajo artístico, y aunque me encanta que me hagan pedidos desde la página, sinceramente no es fundamental en mi negocio.

Bueno, ya se sabe... en casa de herrero...

Pero que no tenga la mejor web no significa que no pueda aconsejar y ayudar... jamás he pretendido tener el mejor sitio, pero me alegra saber que he dado consejos y ayudas a mucha gente... y lo de mi web, solo es cuestión de tiempo, cosa que escasea.

jam: Lo de accesibilidad es algo realmente difícil de conseguir... cuantos acondicionan la web para ciegos, o con alguna discapacidad... la verdad es que me lo he planteado en ocasiones, pero no tengo clientes que me empujen a ello... ¡supongo que te refieres a eso!

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 16/04/2006, 18:06
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Exacto !! Bendita libertad. Conocerás gente que le gusta diseñar en Flash (yo lo detesto), pero es su estilo de hacer webs y bien por ellos.
Pues sí... igual soy enemigo de Flash , con las cosas geniales que se pueden hacer con JavaScript)!!! (solo lo muestro )

Al final todo se resume en para qué están hechas las cosas, cuál es la importancia de la aplicación, pero si es el contenido (información) lo ideal sería JavaScript no intrusivo... Gmail tiene su verisión sin AJAX, puro HTML, cosa que agradesco pués he entrado en maquinas que no soportan AJAX (sí, aún axisten).

Cita:
jam: Lo de accesibilidad es algo realmente difícil de conseguir... cuantos acondicionan la web para ciegos, o con alguna discapacidad... la verdad es que me lo he planteado en ocasiones, pero no tengo clientes que me empujen a ello... ¡supongo que te refieres a eso!
Con hacer un sitio correctamente semántico y no utilizar JavaScript intrusivo debería bastar, el demás trabajo correspondería a aplicaciones conretas ¿no?. Mi comentario fue por que se utilizó JS intrusivo, en navegadores como Lynx no se podría acceder al envio de dicho formulario.

Paz, amor y baile!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 28/03/2010, 22:25
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como detener un form

Cita:
Iniciado por jam1138 Ver Mensaje
Y en la accesibilidad!...

Que mal que pienses así --yo navego sin JS--, en serio... pero bueno, bendita libertad .

Técnicamente es un error lo que propónes y si verdaderamente alguien quiere violar tu validación JS puede hacerlo... una vez entregado el documento es del cliente, y puede editarlo --sabrás de GreaseMonkey, solo un ejemplo--, el argumento no es válido.

Saludos!
puedo darme cuenta de su inexperiencia desarrollando webs.

me he especializado en sitios web de alta seguridad, y creo que los cometarios de uamistad son los mas valiosos en este tema, existen gran cantidad de paginas que al desactivar js quedan totalmente expuestas a ataques, navegadores como opera o firefox pueden detener y violar los eventos js con un par de clics.

a parte creo que navegar sin utilizar js es negarse a una tecnologia rapida comoda y universal, creo que cualquier persona que diga que navega sin js es mentira, ya que sin js no se puede ver el correo, aceder a las herramientas de los buscadores, en realidad sin js no se puede navegar...
  #14 (permalink)  
Antiguo 28/03/2010, 22:31
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: Como detener un form

Hola:

El tema es de hace 4 años, y por eso se cierra.

necromcraft: Si necesitas dar tu opinión sobre el tema, siempre se puede referenciar en un tema nuevo.

Y por cierto, bienvenido.

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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 04:45.