Foros del Web » Programando para Internet » Javascript »

porque me funciona con firefox y no con IE?

Estas en el tema de porque me funciona con firefox y no con IE? en el foro de Javascript en Foros del Web. Estoy creando una red social en php, mysql y javascript. javascript uso para llamar a un formulario dinamico y para ocultar links por css dentro ...
  #1 (permalink)  
Antiguo 12/07/2009, 18:39
 
Fecha de Ingreso: julio-2009
Ubicación: Paraguay
Mensajes: 36
Antigüedad: 14 años, 10 meses
Puntos: 0
Exclamación porque me funciona con firefox y no con IE?

Estoy creando una red social en php, mysql y javascript. javascript uso para llamar a un formulario dinamico y para ocultar links por css dentro de una funcion JS y volver a mostrarlo.. el problema es que todo funciona de maravillas en firefox, pero en internet explorer se me arma un lio total. por ejemplo.. tengo este codigo que crea el formulario dinamico y oculta el link.

function abrir(ndiv, id, link){


var mensaje = document.getElementById(ndiv);
var form = document.createElement('form');
var areadetexto = document.createElement('textarea');
var aceptar = document.createElement('input');
var cerrar = document.createElement('input');
mensaje.appendChild(form);
form.id='form';
form.method = 'POST';
form.action= 'enviar.php?id='+id;
form.appendChild(areadetexto);
areadetexto.name = 'mensaje';
form.appendChild(aceptar);
form.appendChild(cerrar);
aceptar.type = 'Submit';
aceptar.value = 'Enviar';
cerrar.value = 'Cancelar';
cerrar.type = 'reset';
cerrar.onclick = \" borrar('ndiv') \";


var link=document.getElementById(link);
link.style.display = 'none';



}


en firefox me funciona bien.. pero en IE en vez de crearme botones submit me crea texbox y no me funciona lo de ocultar o no el link.. a que se debe esto?

gracias de antemano!
  #2 (permalink)  
Antiguo 12/07/2009, 20:38
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: porque me funciona con firefox y no con IE?

cambia el orden de estas las siguientes lineas:
Código:
aceptar.type = 'Submit';
aceptar.value = 'Enviar';
cerrar.value = 'Cancelar';
cerrar.type = 'reset';
form.appendChild(aceptar);
form.appendChild(cerrar); 
especificamente fijate que los appendChild van ultimo. sucede que en navegadores MSIE no puedes cambiar el tipo de INPUT una vez este ha sido agregado al documento. debe funcionarte cambiando primero el tipo y luego agregando los elementos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 12/07/2009, 21:00
 
Fecha de Ingreso: julio-2009
Ubicación: Paraguay
Mensajes: 36
Antigüedad: 14 años, 10 meses
Puntos: 0
Exclamación Respuesta: porque me funciona con firefox y no con IE?

muchas gracias, eso lo solucione, pero ahora tengo otro problema de incompatibilidad por llamarlo asi.. las funciones abrir() y cancelar() las llamo desde un link en otra pagina php.. como siempre en mozilla todo bien.. me pasa el id del link de una pagina a otra y oculta el link.. pero en IE no... porque es eso.. les pongo los codigos.

esto es el link que llama a la funcion de JS abrir()
echo '<a id="link'.$n.'" href="javascript:void(null)" onclick='."\"".'abrir('. '\'' .'no'.$n. '\'' .",". '\'' .$reg['id']. '\'' .','. '\''.'link'.$n. '\');'."\"".'>Responder<a/>';

function abrir(ndiv, id, link){


var mensaje = document.getElementById(ndiv);
var form = document.createElement('form');
var areadetexto = document.createElement('textarea');
var aceptar = document.createElement('input');
var cerrar = document.createElement('input');
mensaje.appendChild(form);
form.id='form';
form.method = 'POST';
form.action= 'enviar.php?id='+id;
form.appendChild(areadetexto);
areadetexto.name = 'mensaje';
aceptar.type = 'Submit';
aceptar.value = 'Enviar';
cerrar.value = 'Cancelar';
cerrar.type = 'reset';
form.appendChild(aceptar);
form.appendChild(cerrar);
cerrar.onclick = \" borrar('ndiv') \";


var link=document.getElementById(link);
link.style.display = 'none';



}

y esa la funcion abrir.. no me oculta el link.. en esta parte se supone que una vez apretado el link.. me tiene que ocultar..


var link=document.getElementById(link);
link.style.display = 'none';


pero en IE no funciona, solo en firefox.. algun error de sintaxis?
  #4 (permalink)  
Antiguo 13/07/2009, 05:18
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: porque me funciona con firefox y no con IE?

me extra~na que te funcione perfecto en Fx. segun la prueba que hice, el formulario envia los datos obviando cualquier parametro que aparezca en la ruta del action. o sea, si la ruta es enviar.php?id=937, la porcion ?id=937 es ignorado. lo correcto seria crear un nuevo INPUT HIDDEN para que esa informacion se envie.

por otro lado y menos importante para resolver el problema. sacale ventaja a la interpolacion de variables en php. el codigo es mas facil de depurar y leer.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 13/07/2009, 09:36
 
Fecha de Ingreso: julio-2009
Ubicación: Paraguay
Mensajes: 36
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: porque me funciona con firefox y no con IE?

perdon la ignorancia.. pero lo de input hidden no entendi ni un comino.. podrias darme un ejemplo??
  #6 (permalink)  
Antiguo 13/07/2009, 10:41
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: porque me funciona con firefox y no con IE?

tengo algo asi en JavaScript. Para verificar si el TextBox esta vacio

if(document.forms[0].mac1.value==""){
window.alert("MAC no Registrada");
}
donde forms[0] es el formulario, mac1 es el TextBox.
Cuando inicio el navegador(IE) funciona pero en el momento de realizar una verificacion despues de haber ingresado una -mac y posteriormente borrarla ya no funciona; me explico la app es para ingresar una cadena y realizar unos procedimientos. Cuando inicio por primera vez la app me funciona la validacion pero si yo quiero realizar una validacion luego de haber ingresado varias cadenas al TextBox(estando ya vacio), este pequeño codigo en JavaScript no me hace el proceso de validacion. que estoy realizando mal.
Me funciona bien en Mozilla pero no en IE.

Le agradezco de antemano si alguien me puede colaborar

Cordialmente,

uzuniga.
  #7 (permalink)  
Antiguo 13/07/2009, 14:41
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: porque me funciona con firefox y no con IE?

@manumax:
lo que quise decir fue crear un INPUT <input type="hidden" name="id" />. pero obviamente lo harias con javascript.
Código:
var hidden = document.createElement("input");
hidden.setAttribute("name", "id");
hidden.setAttribute("type", "hidden");
hidden.setAttribute("value", id);
el punto es que el ID no puede formar parte de la ruta del action como demostre en el post anterior.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 13/07/2009, 14:51
 
Fecha de Ingreso: julio-2009
Ubicación: Paraguay
Mensajes: 36
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: porque me funciona con firefox y no con IE?

ok, lo voy a probrar. muchas gracias!
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:31.