[英]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.