getJSON,如果选中复选框,则取消选中

getJSON if checkbox is checked then uncheck

本文关键字:取消 复选框 如果 getJSON      更新时间:2023-09-26

我得到了一个函数getBrandUrl(),它触发了getProducts()。

如果选中了

复选框并触发了函数(第二次,在选中的复选框上),则需要取消选中该复选框。因此,我可以在没有该复选框值的情况下构建 GET 请求,以按品牌过滤产品。

<input type="checkbox" name="brand[]" value="35890" onclick="javascript:getBrandUrl('35890');">
<a href="javascript:getBrandUrl('35890');" title="blabla" alt="blabla">blabla</a>

第一次点击 a[href] (blabla) ?然后需要选中复选框并且可以格式化 GET 请求。因此,如果单击另一个复选框或 a[href],它会附加到 URL,当第二次单击时需要将其删除。

function getBrandUrl(value)
        {
            getProducts("<?=$filterUrl?>", value, 'brand[]');
        }
function getProducts(url, value, type)
        {
            if($('input[type="checkbox"][value="' + value + '"]').is(':checked')) {
                $(this).attr('checked', 'false');
            } else {
                $(this).attr('checked', 'true');
            }
            var checked = '';
            $('input[name="' + type + '"]:checked').each(function() {
                checked += '&' + type + '=' + this.value;
            });
            $.getJSON(url + checked + "&json=true", function(data) {
                $('#productList').html('');
                $.each( data, function( key, val ) {
                    var product = formatProductHTML(val.ID, val.PRICE, val.TITLE, val.LINK);
                    $(product).appendTo('#productList');
                });
            });
        }

问题是,当我第一次单击时,它将立即取消选中,因此它不会出现在格式化的 GET 请求中。

任何想法是如何解决这个问题,或者有人知道我在这里做错了什么吗?

忘记所有复选框 JavaScript。

当您单击链接到 checkox 的标签时,它将自动选中链接到它的复选框,从而触发 javascript 功能。

<input type="checkbox" id="35890" name="brand[]" value="35890" onclick="javascript:getBrandUrl('35890');">
<label for="35890">blabla</label>

而且您不必进行任何检查或创建链接来选中复选框。