Foros del Web » Programando para Internet » Jquery »

Checkbox no funciona

Estas en el tema de Checkbox no funciona en el foro de Jquery en Foros del Web. Buenas tardes amigos, tengo un problema y espero me puedan ayudar. Poseo una lista de productos y a la izquierda de la pantalla tengo unos ...
  #1 (permalink)  
Antiguo 20/09/2019, 12:00
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Exclamación Checkbox no funciona

Buenas tardes amigos, tengo un problema y espero me puedan ayudar.

Poseo una lista de productos y a la izquierda de la pantalla tengo unos filtros (Talla, marcas, colores, categorias), estos filtros son checkbox.

En la primera carga obtengo todo perfecto, luego de seleccionar alguno de los filtros, por ejemplo la Talla M, guardo ese dato en el local storage y me recarga el trozo de html de la vista donde están los productos y donde estan estos filtros, hasta ahi todo perfecto, si selecciono otro filtro ya no hace nada, me imagino que fue porque recargue tambien el html donde estan los checkbox, esto lo hago, porque si yo recargo la pagina luego de haber seleccionado los filtros obtengo los datos del localstorage, los envio al servidor, y selecciono los que ya se habian seleccionado, dejo mi codigo a ver si me entienden mejor.

Código:
        var sizes      = [];
        var colors     = [];
        var categories = [];
        var brands     = [];

        if( JSON.parse(localStorage.getItem("sizes")) )
        {
            var sizes = JSON.parse(localStorage.getItem("sizes"));
        }

$(".sizes").on('change', function() {
            if( $(this).is(':checked') ) {

                sizes.push(parseInt($(this).val()));

                localStorage.setItem("sizes", JSON.stringify(sizes));

                $.post( '{{ route('view.products.post') }}', {sizes: sizes, colors: colors, categories: categories, brands: brands}, function(markup)
                {
                    $('#search-result').html(markup);
                });            
  
            } else {

                var index = sizes.indexOf($(this).val());

                sizes.splice(index, 1);

                $.post( '{{ route('view.products.post') }}', {sizes: sizes, colors: colors, categories: categories, brands: brands}, function(markup)
                {
                    $('#search-result').html(markup);
                });

            }
        });
en el markup obtengo el html de los filtros y de la seccion de los productos.

El problema esta, en que luego de la primera seleccion no funcionan los checkbox.
  #2 (permalink)  
Antiguo 11/10/2019, 12:43
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Checkbox no funciona

esta parte poria causarte conflicto por las comillas simples, encierra en comilas dobles la propiedad
Código Javascript:
Ver original
  1. $.post( '{{ route('view.products.post') }}',

tambien te puede ser util debuguear con console.log() dentro del change ()
Código Javascript:
Ver original
  1. $(".sizes").on('change', function() {
  2. console.log(localstorage)

para revisar que es lo que esta haciendo en cada cambio
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 11/10/2019, 13:07
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Checkbox no funciona

El código Javascript cargado en una consulta ajax no se ejecuta en muchos casos, la mayoría, tienes que separar tu código en archivos independientes.

con eso evitas que deje de funcionar,

@PIRRUMAN las llaves {{ route(...) }} es parte de blade en laravel, por lo que se interpreta y e imprime como un echo de PHP

terminara siendo
$.post( 'http://url.com/ruta'....


Si pretendes cargar contenidos con ajax, quizás seria bueno implementarlo con Vue ya viene integrado en laravel, también tienes reactJS muy facil de usar.

Etiquetas: checkbox
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 14:30.