JavaScript - 2 script aparentemente iguales, errores distintos

 
Vista:
sin imagen de perfil

2 script aparentemente iguales, errores distintos

Publicado por Joaquin (3 intervenciones) el 01/02/2018 23:56:20
Hola, soy programador de php, pero javascript es el lenguaje que siempre me ha llevado por la calle de la amargura y no me queda más pelotas que usarlo para algunas interactividades.

Tengo un problema que no consigo ni entender ni resolver, tengo un script que ejecuto directamente desde html, y otro que genero dinamicamente con php. Ambos scripts deben funcionar igual, pero cuando los simplifíco a la enexima potencia, uno funciona y el otro no y no sé porqué.

Copio los códigos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script>
	function openWindowWithPost(id_pedido, id_cliente, metodo_pago) {
		var f = document.getElementById('form');
		f.id_pedido.value = id_pedido;
		f.id_cliente.value =id_cliente;
		f.metodo_pago.value = metodo_pago;
		window.open('','TheWindow');
		f.submit();
	}
	openWindowWithPost(337,1, "Efectivo");
</script>
 
<script>
	function openWindowWithPosta(idcliente, albaran_2, albaran_1) {
		var a = document.getElementById('form');
		a.idcliente.value = idcliente;
		a.albaran_2.value = albaran_2;
		a.albaran_1.value = albaran_1;
		window.open('','TheWindow');
		a.submit();
	}
	openWindowWithPosta(1, 2, 1);
</script>

El script 2, me arroja el siguiente error

1
2
TypeError: a is null
a.idcliente.value = idcliente;

No entiendo nada, deberían arrojar los dos script el mismo error, puesto que prácticamente son idénticos, sólo cambio los nombres de las variables, ambos funcionan sin haber declarado una id de formulario en la pestaña que se lanza, pero ambos provienen de un formulario con id="form", y es algo que no entiendo, estoy ya tan bloqueado y llevo tanto tiempo intentando averiguar qué sucede que ya estoy por cortarme las venas.

En php, el script 1 se lanza sin ningún problema una pesataña nueva y maneja perfectamente todos los parámetros.

Pero el script 2, no lanza ni a tiros la pestaña.

Alguien me puede ayudar a entender qué está ocurriendo en los dos scripts mostrados?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi
Val: 30
Ha disminuido 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

2 script aparentemente iguales, errores distintos

Publicado por santi (12 intervenciones) el 02/02/2018 03:30:08
Hola,

puede que en el primer script después de "a.submit();" se envía el formulario y ya en el segundo script los valores están a 0..

Esto puedes probarlo eliminando el idcliente a ver si te da error en albaran_2 y si fuera el caso es que algo pasa en el segundo script...

Pero vamos, que comento a ciegas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2 script aparentemente iguales, errores distintos

Publicado por Joaquin (3 intervenciones) el 02/02/2018 10:18:26
Hola

Si, sigue dando el mismo error. El error pasa a albaran_2.
Comentarte, que cada script se carga independiente en páginas distintas, los he puesto juntos para averiguar porque el segundo script da error y el primero no.

He probado a crear dentro de la etiqueta body un formulario con id="form", he añadido también a este formulario target="TheWindows", y he añadido los inputs correspondientes a cada campo, dentro del formulario, y sigue fallando por cada caso separado y en todos los casos juntos.

Creo que mi problema, es que no entiendo cómo javascript hace el constructor y por eso ando más perdido que una gitana en un montón de bragas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

2 script aparentemente iguales, errores distintos

Publicado por Joaquin (3 intervenciones) el 02/02/2018 11:14:07
Hola, ya lo he solucionado, el problema estaba en el boton que lanza la pagina php, no me preguntes porqué, pero funciona poniendo formtarget="_blank" en el input del boton.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar