Foros del Web » Programando para Internet » Javascript »

Explorer Saca Errores - Firefoz No

Estas en el tema de Explorer Saca Errores - Firefoz No en el foro de Javascript en Foros del Web. Hola, bueno ya me funciona mi pagina en Firefox, pero el estandar de la empresa es Explorer 8... Les copio la funcion que saca 2 ...
  #1 (permalink)  
Antiguo 06/04/2011, 14:06
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Explorer Saca Errores - Firefoz No

Hola, bueno ya me funciona mi pagina en Firefox, pero el estandar de la empresa es Explorer 8...

Les copio la funcion que saca 2 errores IE8.


Mil Gracias!!!

Parte del Codigo:
Código HTML:
<script language="javascript">
function check(b, el, thisform){
// alert(b);document.miFormulario.miCheck.click()
if(b){	//No esta chequeado, primero envio el formulario luego lo desabilito (a)

var celdas=document.getElementById(el.parentNode.parentNode.id).getElementsByTagName('input');
	var bool = verifyIP(celdas[2].value);
		if(bool){
		celdas[7].checked=0 
		return;
		}
	celdas[5].disabled = '';
	alert('C' + celdas[7].value + 'exion iniciada');
	for (var i = 0, total = celdas.length; i < total-1; i ++) {
	thisform.submit();
	celdas[i].disabled = 'disabled';
	}
}else{	//Esta chequeado, primero lo habilito y envio el formulario (r)
var celdas=document.getElementById(el.parentNode.parentNode.id).getElementsByTagName('input');
	for(i = 0, total = celdas.length; i < total-1; i ++){   //ESTA ES LA LINEA 107 ///////////////////////////
	celdas[i].disabled = '';
	}
thisform.submit();
celdas[6].checked=0
send(false,el,thisform);
}
}
	
function send(nocheck, box, thisform){
if(nocheck){	//No esta chequeado, primero envio el formulario luego lo desabilito (a)
var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName('input');
	var bool = verifyIP(celdas[2].value);
		
		if(bool){
		celdas[6].checked=0 
		return;     //ESTA ES LA LINEA 120///////////////////////////////////////////
		}
		
	thisform.submit();
	celdas[2].readOnly = nocheck? 'true' : '';
	celdas[3].readOnly = nocheck? 'true' : '';
	celdas[4].readOnly = nocheck? 'true' : '';
	celdas[5].disabled = 'disabled';
	celdas[7].checked=1
	check(true,box,thisform);
}else{	//Esta chequeado, primero lo habilito y envio el formulario (r)
var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName('input');
	celdas[2].readOnly = nocheck? 'true' : '';
	celdas[3].readOnly = nocheck? 'true' : '';
	celdas[4].readOnly = nocheck? 'true' : '';
	celdas[5].disabled = '';
	alert('C' + celdas[6].value + 'exion terminada');
thisform.submit();
// alert("Si paso por aqui");
}
}

</script> 
Detalles de error de página web
Agente de usuario: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Fecha: Wed, 6 Apr 2011 19:53:59 UTC

Mensaje: Argumento no válido.
Línea: 107
Carácter: 2
Código: 0
URI: http://localhost/AllinOneSup.php

Mensaje: Argumento no válido.
Línea: 120
Carácter: 2
Código: 0
URI: http://localhost/AllinOneSup.php
  #2 (permalink)  
Antiguo 06/04/2011, 14:17
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Explorer Saca Errores - Firefoz No

En esa linea, como asi tambien en una anterior tenes el mismo error. Pones una coma (,) donde deberia de haber un punto y coma (;)
Ademas, te conviente definir el i antes.

Var i;

for (var i = 0, total = celdas.length; i < total-1; i ++)

CORRECTO =>
var i;
total = celdas.length;
for (i = 0; i < total-1; i ++)


En el segundo caso seria lo mismo:


for(i = 0, total = celdas.length; i < total-1; i ++)
total = celdas.length;
CORRECTO => for (i = 0; i < total-1; i ++)

Saque linea para mostrarte el error, primero corregi eso, cualuqier cosa avisanos.

Espero haber sido de utilidad

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.

Última edición por ArkangelGammar; 06/04/2011 a las 14:20 Razón: Muestro lo que seria correcto
  #3 (permalink)  
Antiguo 06/04/2011, 14:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Explorer Saca Errores - Firefoz No

Ok tenias razon estaba mal, ya lo corregi pero sigue igual marca el mismo error en las mismas lineas, para Firefox funciona bien...
  #4 (permalink)  
Antiguo 06/04/2011, 15:24
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Explorer Saca Errores - Firefoz No

Bueno coloque alerts haber donde se colgaba...

Código HTML:
function send(nocheck, box, thisform){
	if(nocheck){	//No esta chequeado, primero envio el formulario luego lo desabilito (a)
	var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName('input');
Se cuelga en la ultima linea...

Esta funcion se llama en un checkbox:
Código HTML:
onclick="send(this.checked, this, this.form);
No se cual pueda ser el error...
  #5 (permalink)  
Antiguo 06/04/2011, 21:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Explorer Saca Errores - Firefoz No

Cita:
var celdas=document.getElementById(box.parentNode.pare ntNode.id).getElementsByTagName('input');
Mmm... por que hace eso de esa forma? No seria mejor:

Cita:
var celdas = thisform.getElementsByTagName('input');
  #6 (permalink)  
Antiguo 07/04/2011, 05:53
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Explorer Saca Errores - Firefoz No

Es porque de esa manera obtener todos los elemento input con un id determinado (por si los id se repiten).

Ahora bien, el error que te tira en:

onclick="send(this.checked, this, this.form);

Asi tal cual tenes definida la llamada a la funcion?

no te convendria poner algo asi:

onclick = "send(this)";

y luego en send hacer:

send(parametro);
var b=parametro.checked;
var el= parametro;
var thisform = parametro.form;

(puse esos nombres asi respetas la nomenclaruta). Si queres mandame el codigo (mensaje privado) y le pego una mirada.

Espero haber ayudado.

SAludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #7 (permalink)  
Antiguo 07/04/2011, 06:14
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Explorer Saca Errores - Firefoz No

Cita:
Iniciado por ArkangelGammar Ver Mensaje
Es porque de esa manera obtener todos los elemento input con un id determinado (por si los id se repiten).


SAludos
Los id no pueden repetirse: el id debe ser obligatoriamente un identificador único para que el html o xhtml sea válido/correcto (y esto es Ley aunque estés trabajando en modo quirks)

Última edición por Panino5001; 07/04/2011 a las 06:29 Razón: corrección de ortografía
  #8 (permalink)  
Antiguo 07/04/2011, 08:03
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Explorer Saca Errores - Firefoz No

Bueno ya probe lo que me dijieron...

Código HTML:
var celdas=document.getElementById(box.parentNode.pare ntNode.id).getElementsByTagName('input');
Es obligatorio, pues quiero trabajar sobre una fila de una tabla, que tiene un id especifico.

El cambio de
Código HTML:
onclick="check(this.checked, this, this.form);"
a
Código HTML:
onclick="check(this);"
no hizo que funcionara en IE8

Les copio mas partes del codigo, no lo copio completo por que siento que la gente se desanima al ver un codigo largo, no??? ajajja


GRacias!!

Código HTML:
function check(nocheck, box, thisform){
	// alert(b);document.miFormulario.miCheck.click()
	if(nocheck){	//No esta chequeado, primero envio el formulario luego lo desabilito (a)
	var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName("input");
		var bool = verifyIP(celdas[2].value);
			if(bool){
			celdas[7].checked=0 
			return;
			}
		celdas[5].disabled = '';
		alert('C' + celdas[7].value + 'exion iniciada');
		total = celdas.length;
		for(i=0; i<total-1; i ++){
		thisform.submit();
		celdas[i].disabled = 'disabled';
		}
	}else{	//Esta chequeado, primero lo habilito y envio el formulario (r)
	var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName("input");
		total = celdas.length;
		for(i=0; i<total-1; i ++){
			celdas[i].disabled = '';
		}
	thisform.submit();
	celdas[6].checked=0
	send(false,el,thisform);
	}
	}
		
	function send(nocheck, box, thisform){
	if(nocheck){	//No esta chequeado, primero envio el formulario luego lo desabilito (a)
	var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName("input");
	alert("before de var");
		var bool = verifyIP(celdas[2].value);
			alert("after var")
			if(bool){
			celdas[6].checked=0 
			return;
			}
			
		thisform.submit();
		celdas[2].readOnly = nocheck? 'true' : '';
		celdas[3].readOnly = nocheck? 'true' : '';
		celdas[4].readOnly = nocheck? 'true' : '';
		celdas[5].disabled = 'disabled';
		celdas[7].checked=1
		check(true,box,thisform);
	}else{	//Esta chequeado, primero lo habilito y envio el formulario (r)
	var celdas=document.getElementById(box.parentNode.parentNode.id).getElementsByTagName("input");
		celdas[2].readOnly = nocheck? 'true' : '';
		celdas[3].readOnly = nocheck? 'true' : '';
		celdas[4].readOnly = nocheck? 'true' : '';
		celdas[5].disabled = '';
		alert('C' + celdas[6].value + 'exion terminada');
	thisform.submit();
	// alert("Si paso por aqui");
	}
	}
Código HTML:
<tr id="celda" >
      <form action="Main.php" method="POST" target ="mainFrame" name="form">
          <td><input type='hidden' size="10" name='name' value='<?php echo $_SESSION['username']?>' readonly="readonly" /></td>
          <td align="center"><input type="text" name="IPini" value="<?php echo "{$_SERVER["REMOTE_ADDR"]}"?>" readonly="readonly" /></td>
          <td align="center"><input type="text" name="IPfin" value="10.201." maxlength="14"/></td>
          <td align="center"><input type="text" name="ancho" value="0" size="8" maxlength="8"/></td>
          <td align="center"><input type="text" name="delay" value="0" size="8" maxlength="3"/></td>
          <td align="center"><input type="checkbox" name="simetrico" checked /></td>
          <td align="center"><input type="checkbox" name="graficar" onclick="send(this.checked, this, this.form);" /></td>
          <td align="center"><input type="checkbox" name="status" onclick="check(this.checked, this, this.form);" /></td>
        </form>
      </tr> 
  #9 (permalink)  
Antiguo 07/04/2011, 08:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 49
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Explorer Saca Errores - Firefoz No

Bueno!!!! Ya lo solucione!!!!

Le agregue id a cada form y listo..., yo le tenia id a cada <tr>..., ahora tienen los dos...

Código HTML:
<tr id="celda" >
      <form action="Main.php" method="POST" target ="mainFrame" name="form" id="form">
          <td><input type='hidden' size="10" name='name' value='<?php echo $_SESSION['username']?>' readonly="readonly" /></td>
          <td align="center"><input type="text" name="IPini" value="<?php echo "{$_SERVER["REMOTE_ADDR"]}"?>" readonly="readonly" /></td>
          <td align="center"><input type="text" name="IPfin" value="10.201." maxlength="14"/></td>
          <td align="center"><input type="text" name="ancho" value="0" size="8" maxlength="8"/></td>
          <td align="center"><input type="text" name="delay" value="0" size="8" maxlength="3"/></td>
          <td align="center"><input type="checkbox" name="simetrico" checked /></td>
          <td align="center"><input type="checkbox" name="graficar" onclick="send(this.checked, this, this.form);" /></td>
          <td align="center"><input type="checkbox" name="status" onclick="check(this.checked, this, this.form);" /></td>
        </form>
      </tr> 

Gracias todos !!!
  #10 (permalink)  
Antiguo 07/04/2011, 09:52
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Explorer Saca Errores - Firefoz No

Era justo lo que te iba a mencionar. Lo input no tenian id.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.

Etiquetas: errores, explorer
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 21:56.