我有以下内容:
<input type="checkbox" value="Spanish" <?php if($_GET['set'] == 'Spanish') echo 'checked'; ?> onclick="filter(this)" id="spanish">
<input type="checkbox" value="English" <?php if($_GET['set'] == 'English') echo 'checked'; ?> onclick="filter(this)" id="english">
<input type="checkbox" value="French" <?php if($_GET['set'] == 'French') echo 'checked'; ?> onclick="filter(this)" id="french">
function get_url() {
var urlPrefix = '<?php echo site_url('home/language?'); ?>'
var urlSuffix = "";
var slectedCategory = "";
$('#spanish:checked').each(function() {
slectedCategory = $(this).attr('value');
});
$('#english:checked').each(function() {
slectedCategory = $(this).attr('value');
});
$('#french:checked').each(function() {
slectedCategory = $(this).attr('value');
});
urlSuffix = "set="+slectedCategory;
var url = urlPrefix+urlSuffix;
return url;
}
function filter() {
var url = get_url();
window.location.replace(url);
}
出现的问题是,当我选择第一个选项(西班牙语)时,它会起作用,如果我选中第二个选项,它也会起作用(英语)。但是,如果我尝试再次检查上一个选项(西班牙语),则无法使用。
那会是什么?看来它只能通过下降来起作用。
答案 0 :(得分:0)
之所以出现此问题,是因为您没有使用单击的复选框的值在get_url
函数中生成新的url。像下面那样替换您的js函数。它将起作用。
function get_url(elem) {
var urlPrefix = '<?php echo site_url('home/language?'); ?>'
var urlSuffix = "";
var slectedCategory = "";
slectedCategory = $(elem).attr('value');
urlSuffix = "set="+slectedCategory;
var url = urlPrefix+urlSuffix;
return url;
}
function filter(elem) {
var url = get_url(elem);
window.location.replace(url);
}