我有一个Ajax运行,以获取一些基于下拉字段的数据。这是有效的,但当我过滤并转到详细页并返回到上一页时。我再次看到所有项目,但下拉列表中的项目仍显示上次选中的过滤器。
当我尝试使用jquery获取此数据时,它会显示第一个选项是活动的,但它会显示我上次选择的任何选项。
下拉列表:
<select class="input-filter" id="filter-countries" name="cbo-country">
<option value="0"><?= $this->lang->line('all_countries') ?></option>
<?php
foreach($vacancies_countries as $c){
?>
<option value="<?= $c->id ?>"><?= $c->{'name_'.LANG} ?></option>
<?php
}
?>
</select>AJAX函数:
function initFilters(){
$('#filter-countries').on('change', function(){
var country_id = $(this).val();
$.ajax({
type: 'POST',
url: site_url + 'jobs/filter',
data: {
country_id: country_id
},
success: function(res){
$('.vacancies-holder').html(res);
}
})
});
}有没有办法只显示所选下拉列表中的项目,或者删除下拉列表标签以“全部显示”?
正如你所看到的,当我返回时,下拉菜单显示“德国”(witch is ID : 2),但实际上我得到了第一个ID,尽管显示屏上显示的是“德国”。
发布于 2020-11-21 02:01:55
您可以在页面加载时运行此命令
$('#filter-countries option:first').prop('selected', true);`如果您已经调用了initFilters,那么您可能需要在var country_id = $(this).val();之后执行此操作,以防止触发操作。
if (!country_id) {
return;
}https://stackoverflow.com/questions/64929067
复制相似问题