Foros del Web » Programando para Internet » Javascript »

problema al pulsar boton de tipo submit en internet explorer

Estas en el tema de problema al pulsar boton de tipo submit en internet explorer en el foro de Javascript en Foros del Web. hola amigos del foro. tengo el siguiente problema: estoy elaborando un sistema de noticias y comentarios en el cual cuando presiono el boton para enviar ...
  #1 (permalink)  
Antiguo 11/10/2012, 07:31
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Pregunta problema al pulsar boton de tipo submit en internet explorer

hola amigos del foro. tengo el siguiente problema:
estoy elaborando un sistema de noticias y comentarios en el cual cuando presiono el boton para enviar el comentario, no se ejecuta la funcion en ajax, pero sí guarda los datos en la base de datos. si presiono por segunda vez el boton, se ejecuta todo con normalidad. Lo raro es que ocurre con normalidad en todos los navegadores, a excepcion de internet explorer. lo mismo me ocurre cuando quiero eliminar un comentario, tengo que presionar dos veces el link. les dejo el código javascript con las funciones correspondientes:

Código Javascript:
Ver original
  1. function EliminaComentario(id) {
  2.             $.ajax({
  3.                 type: "POST",
  4.                 url: "elimina_comentario.php",
  5.                 data: "id_comentario="+id,
  6.                 success: function(){
  7.                     console.log('comentario_'+id);
  8.                     $('#comentario_'+id).slideUp("slow", function() {$(this).remove();});
  9.                     $('#comentario_'+id).fadeOut();
  10.                    
  11.                 }
  12.             });
  13.         }

Código Javascript:
Ver original
  1. function NuevoComentario(id,nombre_usuario,fecha,foto) {
  2.                 comentario = document.getElementById('texto_'+id).value;//valor caja texto noticia
  3.                 String.prototype.trim = function(){
  4.                                                       return this.replace(/^\s+|\s+$/g, "");
  5.                                                   };
  6.                 if(comentario.trim().length != 0){
  7.                     $.ajax({
  8.                         type: "POST",
  9.                         url: "ingresa_comentario.php",
  10.                         data: "id_news="+id+"&comentario="+comentario+"&fecha="+fecha,
  11.                         success: function(data){
  12.                        
  13.                            console.log(data);
  14.                             $('#texto_'+id).attr("value", "");
  15.                             $('#contenedor_c_'+id).append('<tr><td><div id="comentario_'+data+'" class="comentarios"><table><tr><td rowspan=2><img src="'+foto+'" alt=Perfil height="32" width="32" /></td><td><div class="EnviadoPor">Enviado por: <b>'+nombre_usuario+'</b></div></td><td><div class="FechaComentario">Fecha: '+fecha+'</div></td><td> <a id="elimina_'+data+'" href="" onClick="EliminaComentario('+data+');return false;" class="eliminar">eliminar<a/> </td></tr> <tr><td><div class="comentario">'+comentario+'</div> </td> </tr> </table></div> </td></tr>');
  16.                      }
  17.                     });
  18.                    
  19.                 }
  20.                 else{
  21.                     alert("Debe llenar los datos.");
  22.                 }
  23.             }

ojala que puedan responderme mi duda, tengo varios dias tratando de resolver esto y aun no encuentro una respuesta.
muchas gracias de antemano.
  #2 (permalink)  
Antiguo 11/10/2012, 09:07
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: problema al pulsar boton de tipo submit en internet explorer

si se guarda en DB es porque obviamente se está estableciendo una petición HTTP, puede que la estándar del form y no la de AJAX, lo que tienes que hacer es cancelar el envío estandar del form con:

<form onsubmit="return false;" >

además antes del return puedes colocar la llamada a la función AJAX y quitarla del input submit, te funcionará hasta con presionar ENTER
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 11/10/2012, 09:16
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: problema al pulsar boton de tipo submit en internet explorer

hola, gracias por responder. en ese caso sería lo mas lógico, pero antes quiero aclarar algo en lo que me equivoque:

- el boton no es de tipo submit, es solo un button, por lo tanto no tiene un formulario asociado.

pongo el código del boton para rectificar lo que dije:

Código PHP:
Ver original
  1. <input type="button" class="EnviarComentario" id="Enviar<?echo $idnews;?>" value="Enviar" onclick="NuevoComentario(<?echo $idnews;?>,'<? echo $nombreUsuario;?>','<?echo $fecha;?>','<?echo $foto_coment;?>');"/>
  #4 (permalink)  
Antiguo 11/10/2012, 09:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: problema al pulsar boton de tipo submit en internet explorer

igual, tiene que haber una petición HTTP papra que llegue al servidor y ejecute la inserción

usa una consola de depuración para que compruebes lo que pasa

un form puede enviarse si se presiona ENTER en un input, por lo cual es igual de recomendable que si tu objetivo es enviarlo por ajax, canceles su envío estándar como le indique
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 11/10/2012, 13:11
 
Fecha de Ingreso: noviembre-2011
Mensajes: 11
Antigüedad: 13 años
Puntos: 0
Respuesta: problema al pulsar boton de tipo submit en internet explorer

hola maycolalvarez, lamentablemente probe lo que me habias propuesto, pero no funciono. de hecho, ahora no ejecuta la funcion en ajax, por lo menos antes lo hacía a la segunda vez.
gracias igual por ayudarme.

Etiquetas: ajax, php
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 18:21.