Foros del Web » Programando para Internet » Javascript »

Problemas con javascript en Mozilla

Estas en el tema de Problemas con javascript en Mozilla en el foro de Javascript en Foros del Web. Hola a todos, tengo varios formularios al estilo del que copio abajo que funcionan perfectamente en IE pero en Mozilla no. La pagina lo que ...
  #1 (permalink)  
Antiguo 15/06/2012, 18:36
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Problemas con javascript en Mozilla

Hola a todos, tengo varios formularios al estilo del que copio abajo que funcionan perfectamente en IE pero en Mozilla no.

La pagina lo que hace es leer una tabla y con eso llenar un FORM HIDDEN que luego recorro con un FOR y una vez que encuentro el valor lleno los otros campos del segundo formulario con los datos del primero.

El problema q me presenta en Mozilla es que me dice que el campo no esta definido. En IE funciona perfecto.


<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<SCRIPT language="JavaScript">
function mostrarProducto() {
var cantidad;
cantidad = document.productos.elements.cantidadProductos.valu e;

for (i=0;i<=cantidad;i++) {
if (document.factura.elements.codigoequivalente.value == document.forms.productos.elements[i].name) {
document.factura.descripcion.value = document.productos.elements[i].value;
document.factura.codigoproducto.value = document.productos.elements[i].codprod;
document.factura.alicuotaiva.value = document.productos.elements[i].alicuotaiva;
break;
}
}
}
</SCRIPT>

<div id="contenedor" style="background-color: #66CCFF; layer-background-color: #66CCFF;">

<?php
// ---------------------------------------------------------------------------------------------------
$cmdSQL = "SELECT cod_producto, descripcion, codigoequivalente, alicuotaiva FROM productos";
$resultado = mysql_query($cmdSQL, $idConex);
$filas = mysql_num_rows($resultado);
echo '<form name="productos" method="get" action="#">';
echo '<input type="hidden" name="cantidadProductos" value="'.$filas.'">';
for ($i=0;$i<$filas;$i++) {
$codigoproducto = mysql_result($resultado,$i,0);
$descripcion = mysql_result($resultado,$i,1);
$codigoequivalente = mysql_result($resultado,$i,2);
$alicuotaiva = mysql_result($resultado,$i,3);
echo "<input type='hidden' name='".$codigoequivalente."' codprod='".$codigoproducto."' alicuotaiva='".$alicuotaiva."' value='".$descripcion."'>";
}
echo '</form>';
?>
<form name="factura">
<table width="90%" border="0" cellpadding="3" cellspacing="3">
<tr bgcolor="#6699CC">
<th scope="col"><font color="#FFFFFF" size="2">Cod. Equiv.</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Cod. Producto</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Descripcion</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Alicuota IVA</span></th>
</tr>
<tr bgcolor="#99CCFF">
<td><div align="center">
<input name="codigoequivalente" type="text" size="6" onChange="mostrarProducto();">
</div></td>
<td><div align="center">
<input name="codigoproducto" type="text" size="8" disabled>
</div></td>
<td><div align="center">
<input name="descripcion" type="text" size="26" disabled>
</div></td>
<td><div align="center">
<input name="alicuotaiva" type="texto" size="6" disabled>
</div></td>
</tr>
</table>
</form>
</div>
</body>
</html>
  #2 (permalink)  
Antiguo 15/06/2012, 22:52
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Problemas con javascript en Mozilla

Hola amigo bienvenido al foro,

las tags en xhtml NO se escriben en mayúsculas, y esta etiqueta esta mal
<SCRIPT language="JavaScript">

debe ser
<script type="text/javascript">

sumado a esto espero que no estes omitiendo el doctype si es asi colocalo para que tu codigo sea procesado correctamente en todos los navegadores, de lo contrario cada navegador lo mostrara en modo quirks osea que muchas cosas no se ejecutan como tu deseas sino como se le antoja al navegador.

te sugiero corrijas tu codigo y si continuas con problemas muestra el codigo resultante de procesar tu archivo php (lo que muestra el navegador al visitante) , el codigo que has mostrado no nos ayuda a saber cual es el problema.
  #3 (permalink)  
Antiguo 19/06/2012, 15:07
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Problemas con javascript en Mozilla

Hola, muchas gracias por tu respuesta, te cuento que todas las paginas tenían el tag de SCRIPT con mayúscula igual q muchos otros tag y me funcionaban “bien”, de todas formas ya las corregí.

Te copio abajo la salida por navegador de la ejecución del php. Ese mismo código en IE8 funciona perfecto, en mozilla no.

Podrás darme una mano.



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<script type="text/javascript">
function mostrarProducto() {
var cantidad;
cantidad = document.productos.elements.cantidadProductos.valu e;

for (i=0;i<=cantidad;i++) {
if (document.factura.elements.codigoequivalente.value == document.forms.productos.elements[i].name) {
document.factura.descripcion.value = document.productos.elements[i].value;
document.factura.codigoproducto.value = document.productos.elements[i].codprod;
document.factura.alicuotaiva.value = document.productos.elements[i].alicuotaiva;
break;
}
}
}
</script>

<div id="contenedor" style="background-color: #66CCFF; layer-background-color: #66CCFF;">

<form name="productos" method="get" action="#"><input type="hidden" name="cantidadProductos" value="20">
<input type='hidden' name='001' codprod='XXXX001' alicuotaiva='1' value='Producto 001'>
<input type='hidden' name='002' codprod='XXXX002' alicuotaiva='1' value='Producto 002'>
<input type='hidden' name='003' codprod='XXXX003' alicuotaiva='1' value='Producto 003'>
<input type='hidden' name='004' codprod='XXXX004' alicuotaiva='1' value='Producto 004'>
<input type='hidden' name='005' codprod='XXXX005' alicuotaiva='1' value='Producto 005'>
<input type='hidden' name='006' codprod='XXXX006' alicuotaiva='1' value='Producto 006'>
<input type='hidden' name='007' codprod='XXXX007' alicuotaiva='1' value='Producto 007'>
<input type='hidden' name='008' codprod='XXXX008' alicuotaiva='1' value='Producto 008'>
<input type='hidden' name='009' codprod='XXXX009' alicuotaiva='1' value='Producto 009'>
<input type='hidden' name='010' codprod='XXXX010' alicuotaiva='1' value='Producto 010'>
<input type='hidden' name='011' codprod='XXXX011' alicuotaiva='1' value='Producto 011'>
<input type='hidden' name='012' codprod='XXXX012' alicuotaiva='1' value='Producto 012'>
<input type='hidden' name='013' codprod='XXXX013' alicuotaiva='1' value='Producto 013'>
<input type='hidden' name='014' codprod='XXXX014' alicuotaiva='1' value='Producto 014'>
<input type='hidden' name='015' codprod='XXXX015' alicuotaiva='1' value='Producto 015'>
<input type='hidden' name='016' codprod='XXXX016' alicuotaiva='1' value='Producto 016'>
<input type='hidden' name='017' codprod='XXXX017' alicuotaiva='1' value='Producto 017'>
<input type='hidden' name='018' codprod='XXXX018' alicuotaiva='1' value='Producto 018'>
<input type='hidden' name='019' codprod='XXXX019' alicuotaiva='1' value='Producto 019'>
<input type='hidden' name='020' codprod='XXXX020' alicuotaiva='1' value='Producto 020'>
</form> <form name="factura">
<table width="90%" border="0" cellpadding="3" cellspacing="3">
<tr bgcolor="#6699CC">
<th scope="col"><font color="#FFFFFF" size="2">Cod. Equiv.</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Cod. Producto</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Descripcion</span></th>
<th scope="col"><font color="#FFFFFF" size="2">Alicuota IVA</span></th>
</tr>
<tr bgcolor="#99CCFF">
<td><div align="center">
<input name="codigoequivalente" type="text" size="6" onChange="mostrarProducto();">
</div></td>
<td><div align="center">
<input name="codigoproducto" type="text" size="8" disabled>
</div></td>
<td><div align="center">
<input name="descripcion" type="text" size="26" disabled>
</div></td>
<td><div align="center">
<input name="alicuotaiva" type="texto" size="6" disabled>
</div></td>
</tr>
</table>
</form>
</div>
</body>
</html>
  #4 (permalink)  
Antiguo 19/06/2012, 15:15
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problemas con javascript en Mozilla

Cita:
Iniciado por alberto_x Ver Mensaje
Ese mismo código en IE8 funciona perfecto, en mozilla no.

<script type="text/javascript">
function mostrarProducto() {
var cantidad;
cantidad = document.productos.elements.cantidadProductos.valu e;

for (i=0;i<=cantidad;i++) {
if (document.factura.elements.codigoequivalente.value == document.forms.productos.elements[i].name) {
document.factura.descripcion.value = document.productos.elements[i].value;
document.factura.codigoproducto.value = document.productos.elements[i].codprod;
document.factura.alicuotaiva.value = document.productos.elements[i].alicuotaiva;
break;
}
}
}
</script>
imposible que en ie8 funcione

por dónde empezar?? a, sí. por aquí
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 19/06/2012, 17:03
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Problemas con javascript en Mozilla

Hola todos.

Cuando vi tu código, alberto_x, me dije lo mismo que IsaBelM.
No supe por donde empezar a explicarte que eso es una chanchada.
Todavía estoy tratando de entender a qué vienen todos esos campos ocultos, que se podrían reemplazar con un array o una cadena que se corte en el documento, y contenga todos los valores. Después los llamas por su índice, por su ubicación. Y de última, si los tienes que usar, el value puede contener todos los valores juntos, y los separas con un split().

No hacía falta inventar atributos que no son propios del elemento input.

De cualquier forma, a mí en FF me funciona.

Te explico cómo es. Pero tienes que prometerme que vas a leer esos tutoriales. Y vas a arreglar ese espanto después.

Código:
...
document.factura.descripcion.value = document.productos.elements[i].value;
document.factura.codigoproducto.value = document.productos.elements[i].attributes.codprod.value;
document.factura.alicuotaiva.value = document.productos.elements[i].attributes.alicuotaiva.value;
...
Suerte
furoya
  #6 (permalink)  
Antiguo 20/06/2012, 08:01
 
Fecha de Ingreso: junio-2012
Mensajes: 3
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Problemas con javascript en Mozilla

Hola gracias por ser tan sinceros. :((

Al que dice que eso no funciona en IE que se lo explique a Microsoft porque hace 5 años q esta así.

Con respecto a porque esta hecho de este modo, la verdad no se, esto me cayo como “peludo de regalo” y lo único que he hecho es continuarlo siguiendo la misma “lógica”. Lo que se de PHP, javascript y demás lo he aprendido buscando en la web.

Nunca se me ocurrió la opción de hacer un array con los datos, pero tenes razón seria un poco mas ordenado.

Con respecto a los tutoriales por supuesto q estoy dispuesto a leerlos.

Desde ya muchas.
  #7 (permalink)  
Antiguo 20/06/2012, 08:31
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problemas con javascript en Mozilla

Cita:
Iniciado por alberto_x Ver Mensaje
Hola gracias por ser tan sinceros. :((

Al que dice que eso no funciona en IE que se lo explique a Microsoft porque hace 5 años q esta así.
es a la, pero eso no importa.

como testificar es de haberlo probado, sí funciona.

no sabía que se podía acceder a la colección elements por el name
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 20/06/2012, 11:11
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Problemas con javascript en Mozilla

Cita:
Iniciado por alberto_x Ver Mensaje
Hola gracias por ser tan sinceros. :((

...

Con respecto a porque esta hecho de este modo, la verdad no se, esto me cayo como “peludo de regalo” y lo único que he hecho es continuarlo siguiendo la misma “lógica”. Lo que se de PHP, javascript y demás lo he aprendido buscando en la web.

Nunca se me ocurrió la opción de hacer un array con los datos, pero tenes razón seria un poco mas ordenado.

...

Desde ya muchas.
"Honestidad'Brutal" es mi segundo nombre.

Y eso de tener que hacerse cargo de los desastres ajenos es un karma que llevamos muchos. En este momento tengo que arreglar un sitio que es una lágrima, porque quien lo hizo se borró. Y voy a tener que aprender PHP y manejo de base de datos, no para escribirlo yo, es algo que me supera, sino para asegurarme que el que venga a arreglarlo no haga un desaguisado peor.
Algunos programadores y diseñadores se aprovechan porque los clientes no entienden nada.
Y si funcionó 5 años ¿cómo le explicamos que todo el tiempo estuvo atado con alambre?


Otro punto.
Hay algo que si le digo "pseudo array asociativo" me van a venir a buscar para pegarme, porque eso no existe en javascript; pero aunque no exista se puede usar y te puede servir para acomodar valores y llamarlos haciendo referencia a un identificador o un valor de input.


Último punto.
Por lo general, cuando vemos preguntas así, las dejamos morir solas en el Foro. Pero después de leer que comprendiste perfectamente el pedido de Ag666 (aunque no lo creas, hay gente que discute eso), al menos a mí me pareció que se te podía seguir respondiendo.

Que te sea leve eso de terminar con la página.

De ...



Cita:
Iniciado por IsaBelM Ver Mensaje
es a la, pero eso no importa.
¡Me la paso quejándome porque donde están el nik y el avatar no aparece si somos 'nene' o 'nena' o ... 'otro' !
¡Todo el tiempo haciendo papelones por algo tan sencillo de arreglar!
(El problema es que si abro otro tema para reclamar por esto, la administración me echa.)

Etiquetas: formulario, funcion, html, input, mozilla, php, select
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 11:40.