Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/12/2017, 11:38
milotower
 
Fecha de Ingreso: abril-2014
Ubicación: Almería
Mensajes: 58
Antigüedad: 10 años
Puntos: 2
Evento onclick en CHECKBOX que solo entra al segundo

Buenos días.

me ocurre una cosa con este trocito de código, creo que debe ser un error de concepto propio mio.

El caso es que solo ejecuta la petición asíncrona AJAX cuando pulso por segunda vez el checkbox.

¿Por qué puede estar ocurriendo esto?

Un saludo y muchas gracias.

Código HTML:
<input type="checkbox" id="confirmar"  name="confirmar" data-id="reserva" class="form-control" onclick="guardar_confirmar()"/> 
Código Javascript:
Ver original
  1. <script type="application/javascript">
  2.                        function guardar_confirmar() {
  3.  
  4.                            alert("dentro");
  5.                            var checkbox = document.getElementById("confirmar"),
  6.  
  7.                                ajax = function(url){
  8.                                    var xhr = window.XMLHttpRequest ?
  9.                                        new XMLHttpRequest() :
  10.                                        new ActiveXObject("Microsoft.XMLHTTP") ||
  11.                                        new ActiveXObject("Msxml2.XMLHTTP");
  12.  
  13.                                    xhr.open("GET", url, true);
  14.                                    xhr.send(null);
  15.                                };
  16.  
  17.                            checkbox.addEventListener("click", function(){
  18.                                var estado = this.checked ? 1 : 0, //Si está marcado, asigno 1 a 'estado', si no, 0
  19.                                    id = this.getAttribute("data-id"), //El valor del pseudo-atributo 'data-id'
  20.                                    url = "/admin/editar-detalle-cobro.php?estado=" + estado + "&idcheckbox=" + id + "&confirmar=1" + "$id=";
  21.                                alert(url);
  22.                                ajax(url); //Ejecuto la petición asíncrona, enviando los valores
  23.                            }, false);
  24.                        }
  25.                     </script>