gpt4 book ai didi

javascript - 复选框 - 检查取消选中功能不起作用

转载 作者:行者123 更新时间:2023-11-29 21:33:27 24 4
gpt4 key购买 nike

我的情况:

我正在开发一个购物车应用程序,它包含一些过滤器:

  1. 按颜色过滤(复选框)

  2. 按样式过滤(复选框)

在选择一些颜色时,我的 url 变成了这样:

http://example.com/women/try.php?color=10,11,12,13

我的问题:

  1. 在取消选中某些颜色时,相关参数不会从 url 中清除。

  2. 另外,当我选择一些样式时,我希望 url 是这样的:

    http://example.com/women/try.php?color=10,11,12,13&style=1,2,3

请帮助我如何实现此功能。


我的代码:

<?php
$colors = $_GET['color'];
$sel_colors = explode(',', $colors);
foreach($sel_colors as $k=>$v) {
$c['check'][$v] = $v;
}

for($i=10;$i<=14;$i++) { ?>
<input type="checkbox" name="color[]" value="<?php echo $i; ?>" <?php echo $check_value = ($c['check'][$i]) ? 'checked' : '0'; ?> >
<label>Color #<?php echo $i.'--'.$check_value; ?></label><?php
}
?><br/><br/><br/>
<input type="checkbox" name="type" value="1" >
<label>style #1</label>
<input type="checkbox" name="type" value="2" >
<label>style #2</label>
<input type="checkbox" name="type" value="3" >
<label>style #3</label>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js" ></script>
<script type="text/javascript">
var baseUrl = 'http://website/women/try.php?color=';
$(document).ready(function () {
// listen to change event (customize selector to your needs)
$('input[type=checkbox]').change(function (e) {
e.preventDefault();
if ($(this).is(':checked')) {
// read in value
var queryString = $(this).val();
// loop through siblings (customize selector to your needs)
var s = $(this).siblings();
$.each(s, function () {
// see if checked
if ($(this).is(':checked')) {
// append value
queryString += ',' + $(this).val();
}
});
// jump to url
window.location = baseUrl + queryString;
}
});
});
</script>

最佳答案

这是工作解决方案的代码片段。颜色复选框的名称从 color[] 更改为 color

var baseUrl = 'http://website/women/try.php?';
$(document).ready(function () {

// listen to change event (customize selector to your needs)
$('input[type=checkbox]').change(function (e) {

//Get all the selected color values
var queryString = "color="+$('[name="color"]:checked')
.map(function() {return this.value;}).get().join(',');

//Append all the selected styles
queryString += "&style="+$('[name="type"]:checked').map(function() {return this.value;}).get().join(',');

//reload page - commented for this snippet
//window.location = baseUrl + queryString;
alert(baseUrl + queryString);
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<!-- Color filter -->
<input type="checkbox" name="color" value="1" checked >
<label>Color 1</label>
<input type="checkbox" name="color" value="2" checked >
<label>Color 2</label>
<input type="checkbox" name="color" value="3" checked >
<label>Color 3</label>
<input type="checkbox" name="color" value="4" checked >
<label>Color 4</label>

<BR><BR>

<!-- Style filter -->
<input type="checkbox" name="type" value="1" >
<label>style #1</label>

<input type="checkbox" name="type" value="2" checked>
<label>style #2</label>

<input type="checkbox" name="type" value="3" checked>
<label>style #3</label>

关于javascript - 复选框 - 检查取消选中功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35415420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com