Foros del Web » Programando para Internet » Javascript »

Submit en IE9

Estas en el tema de Submit en IE9 en el foro de Javascript en Foros del Web. Hola, creo un formulario dinámicamente por javascript cuyo evento submit se lanza utilizando javascript desde una función. Esto funciona bien en Chrome y Firefox pero ...
  #1 (permalink)  
Antiguo 29/06/2012, 02:08
 
Fecha de Ingreso: junio-2012
Ubicación: Cerca del mar
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 0
Submit en IE9

Hola,
creo un formulario dinámicamente por javascript cuyo evento submit se lanza utilizando javascript desde una función.
Esto funciona bien en Chrome y Firefox pero en IE9 funciona las primeras 4 o 5 veces y después deja de lanzar el submit.

Este es mi código javascript :
Código HTML:
function AbrirVentanaConexion(direccion, titulo, ancho, alto, especificaciones, cuenta, ip){
	var sData; //Variable que contiene el formulario invisible que se incluye para poder
	//lanzar el método POST. 
	//Crea el formulario
	sData = "<head></head>";
	sData = sData + "<body>";
	sData = sData + "<form name='loginform' style='visibility:hidden;' id='loginform' action='" + direccion + "' method='post'>";
	//Crea un campo de texto que contiene la cuenta pasada por parametro. El name del campo
	//es cuenta así que para recoger los datos se tendrá que consultar el parametro
	//cuenta
	sData = sData + "<input type='text' name='cuenta' id='cuenta' class='input' value='" + cuenta + "' />";
	//Crea un campo de texto que contiene la ip pasada por parametro. El name del campo
	//es ip así que para recoger los datos se tendrá que consultar el parametro ip
	sData = sData + "<input type='text' name='ip' id='ip' class='input' value='" + ip + "' />";
	sData = sData + "<input type='submit' name='wp-submit' id='wp-submit' value='Accion' />";
	sData = sData + "<input type='hidden' name='redirect_to' value='/wp-admin/' />";
	sData = sData + "</form>";
	//Lanzamos el evento submit para que lance el action y abra la ventana pasada por parametro
	sData = sData + "</body>";
	sData = sData + "<script type='text/javascript'>alert('Hola');";
	sData = sData + "document.forms['loginform'].submit();</script>";
	//Abrimos una nueva ventana sin ningún contenido
	OpenWindow=window.open("", titulo,especificaciones);
	//Añadimos a la nueva ventana el form invisible creado anteriormente
	OpenWindow.document.write(sData);
	//
	OpenWindow.document.close();
}
Como véis tengo una función que lanza un alert y un submit.
Llega un momento, depsues de haber abierto la ventana con el frmulario unas 4 veces que el submit se deja de lanzar pero el alert sigue apareciendo así que la función se ejecuta.

Alguna idea??

Gracias!
  #2 (permalink)  
Antiguo 29/06/2012, 02:33
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Submit en IE9

porque pones el form con visibility:hidden?...yo creo que deberías poner los input con display:none; y quitiar el visibility hidden del formulario, me parece que no es correcto hacer un submit de un form oculto...tendira que probar...pero la logica de entrada me dice que los input deberian estar ocultos, no el FORM...
  #3 (permalink)  
Antiguo 29/06/2012, 02:49
 
Fecha de Ingreso: junio-2012
Ubicación: Cerca del mar
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Submit en IE9

Lo puse en el form para ponerlo en el contenedor y que se escondiese todo directamente.
De todas formas he probado de hacer lo que tu dices, ponerselo a los inputs y el comportamiento sigue siendo el mismo
  #4 (permalink)  
Antiguo 29/06/2012, 12:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Submit en IE9

La script tal cual está tiene errores y no debería ejecutarse en ninguna parte, debes escapar correctamenete tu javascript para que no se trunquen las cadenas
Además estas pasando parámetros que no usas, no entiendo para que (ancho, alto, ...)
Asi como sigue funciona
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>craer form oculto</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function AbrirVentanaConexion(direccion, titulo, cuenta, ip){
  9. var sData; //Variable que contiene el formulario invisible que se incluye para poder
  10. //lanzar el método POST.
  11. //Crea el formulario
  12. sData = "<!DOCTYPE html><html lang=\"es-ar\"><head><title>"+ titulo + "<\/title><\/head>";
  13. sData = sData + "<body>";
  14. sData = sData + "<form name='loginform' style='visibility:hidden;' id='loginform' action='" + direccion + "' method='post'>";
  15. //Crea un campo de texto que contiene la cuenta pasada por parametro. El name del campo
  16. //es cuenta así que para recoger los datos se tendrá que consultar el parametro
  17. //cuenta
  18. sData = sData + "<input type='text' name='cuenta' id='cuenta' class='input' value='" + cuenta + "' \/>";
  19. //Crea un campo de texto que contiene la ip pasada por parametro. El name del campo
  20. //es ip así que para recoger los datos se tendrá que consultar el parametro ip
  21. sData = sData + "<input type='text' name='ip' id='ip' class='input' value='" + ip + "' \/>";
  22. sData = sData + "<input type='submit' name='wp-submit' id='wp-submit' value='Accion' \/>";
  23. sData = sData + "<input type='hidden' name='redirect_to' value='/wp-admin/' \/>";
  24. sData = sData + "<\/form>";
  25. //Lanzamos el evento submit para que lance el action y abra la ventana pasada por parametro
  26. sData = sData + "<\/body>";
  27. sData = sData + "<script type='text/javascript'>alert('Hola');";
  28. sData = sData + "document.forms['loginform'].submit();<\/script>";
  29. //Abrimos una nueva ventana sin ningún contenido
  30. OpenWindow=window.open("", titulo,"width=500,height=500");
  31. //Añadimos a la nueva ventana el form invisible creado anteriormente
  32. OpenWindow.document.write(sData);
  33. //
  34. OpenWindow.document.close();
  35. }
  36.  
  37. //]]>
  38. </head>
  39. <button onclick="AbrirVentanaConexion('a.html','titulox','cuenta','127.0.0.1');">s</button>
  40. </body>
  41. </html>
Igual me parece un poco compleja la estructura, habría que ver si el conjunto de tu aplicación la justifica.
saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 02/07/2012, 01:54
 
Fecha de Ingreso: junio-2012
Ubicación: Cerca del mar
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Submit en IE9

Es la manera que encontré para pasar parámetros a una nueva ventana.
He probado tu código modificado y en IE9 sigue dejando de funcionar a la que se abre la ventana unas 4 veces...
emprear, has dicho que a ti te funcionaba, no?Abriste la ventana unas cuantas veces y te funcionó siempre?

Saludos
  #6 (permalink)  
Antiguo 02/07/2012, 04:48
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Submit en IE9

Si funciona, demo
http://foros.emprear.com/javascript/nv.html
Pero si el tema es pasar un form a una nueva ventana se hace así
http://www.forosdelweb.com/f13/mostr...1/#post4221811
Eso de crear el form al vuelo es muy rebuscado

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: formulario, funcion, ie9, input, submit
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 06:14.