簡體   English   中英

如果選中復選框,則為getJSON,然后取消選中

[英]getJSON if checkbox is checked then uncheck

我有一個函數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>

而且您無需進行任何檢查或創建鏈接即可選中一個復選框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM