Foros del Web » Programando para Internet » Javascript »

Se envia el formulario cuando abro un popup

Estas en el tema de Se envia el formulario cuando abro un popup en el foro de Javascript en Foros del Web. Saludos a todos. No sé si lo que ocurre es parte de los estándares o no. Pero cuando abro un popup mediante window.open se envía ...
  #1 (permalink)  
Antiguo 21/05/2009, 11:10
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Se envia el formulario cuando abro un popup

Saludos a todos.

No sé si lo que ocurre es parte de los estándares o no. Pero cuando abro un popup mediante window.open se envía automáticamente el formulario y eso que he bloqueado su envío mediante javascript. Este es el código que uso para evitar que el form se envíe al pulsar cualquier botón (sé que es un estándar de la w3c, pero particualmente a mí me parece una idea estúpida, siempre me causa problemas en Firefox)

Código:

window.onload = function() {
      if (!nav) {
          var frms = document.getElementsByTagName("form");
          for (var b = 0; b < frms.length; b ++) {
              frms[b].onsubmit = function(e) {
                      if (e.explicitOriginalTarget.tagName == "BUTTON") return false;
              }
          }
      }
}
No se preocupen por la variable nav, la recogo como una variable global mediante una función, me sirve para definir si el navegador es Internet Explorer o no. Si no es I.E. me da cero.

Bueno, esto funciona muy bien, en cualquier página; no se envía el form al oprimir un botón (uso "<button ..." no "<input type='button' ..."). Pero bueno, ocurre que cuando uso uno de esos button para abrir un popup, solo si uso la linea windo.open(..... se envía el formulario. Alguién podría decirme si eso es un estándar o no, y al margen de eso, como podría evitalo?

Gracias de antemano.
  #2 (permalink)  
Antiguo 21/05/2009, 18:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Se envia el formulario cuando abro un popup

sucede que el valor predeterminado de un HTMLButton es de tipo submit. por tanto, tienes que hacer que tu boton sea tipo button.
Código html:
Ver original
  1. <button type="button">contenido</button>

por ultimo, un detalle interesante.
Cita:
The default type for Internet Explorer is "button", while in other browsers (and in the W3C specification) it is "submit".
traduccion. en internet explorer el valor predeterminado es 'button', mienstra que en otros navegadores (y el estandar W3C) es 'submit'.
  #3 (permalink)  
Antiguo 22/05/2009, 09:07
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: Se envia el formulario cuando abro un popup

Pues que buena información me has dado, ahora lo veo todo claro, ahora, hay otra cuestión, cuando hago un form por ejemplo de inicio de sesión, ante cualquier enter el navegador envía el formulario, sin importar si el foco está en el button o no. Eso también es parte de los estándares? es decir, se puede colocar un atributo al button para que no se active ante cualquier enter?

Gracias por tu respuesta, necesito aprender mucho sobre estándares, voy a investigar más al respecto. Si tienes algún buen enlace en buena hora no importa si está en inglés.
  #4 (permalink)  
Antiguo 22/05/2009, 09:15
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Se envia el formulario cuando abro un popup

no estoy seguro si asi lo define el estandar. pero creo que en todos los navegadores, cuando un boton submit esta presente, al presionar Enter sobre cualquiera de los elementos de formulario es sinonimo de un submit, con excepcion de HTMLTextarea. si el estandar no lo define asi, me parece que mas bien ha sido una cuestion en acuerdo entre los desarrolladores de navegadores. esa es mi opinion.
  #5 (permalink)  
Antiguo 22/05/2009, 10:28
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 2 meses
Puntos: 67
Respuesta: Se envia el formulario cuando abro un popup

Bueno y como lo evito? O sea, puedo evitarlo mediante JavaScript, pero me pregunto si existe algún atributo o propiedad en HTML para evitar eso. Gracias por tu atención.
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 15:29.