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>
而且您不必进行任何检查或创建链接来选中复选框。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 使用javascript在页面加载时取消选中所有复选框
- (取消)使用单独的复选框激活复选框列表
- jQuery-取消选中复选框
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- Javascript选中/取消选中所有复选框并将值写入文本区域
- dojo/cbtree取消选中所有复选框并选中选中复选框
- 通过选中和取消选中复选框来添加和删除数组中的值
- 当与之关联的 ng-model 为 false 时,Angularjs 复选框值不会取消选中
- 取消复选框未进行可视化更新
- 复选/取消复选框不能与prop功能一起工作
- 在剑道ui网格中上下滚动时取消复选框
- 检查条件后使用jQuery取消复选框
- 当另一个复选框被选中时,取消复选框,但如果被选中,也取消复选框
- JQuery .prop函数不工作,取消复选框
- 取消复选框绑定
- 如何在不取消复选框的情况下通过Ajax更新复选框列表
- 绑定点击事件后无法取消复选框