jquery - 转到上一页时返回 ajax 值
问题描述
我有一个 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);
}
})
});
}
有没有办法只显示所选下拉列表的项目或删除下拉标签以“全部显示”?
如您所见,当我返回时,下拉菜单显示“德国”(女巫是 ID:2),但实际上我得到了第一个 ID,即使显示屏显示“德国”
解决方案
您可以在页面加载时运行它
$('#filter-countries option:first').prop('selected', true);`
如果您之前已经调用initFilters
过,那么您可能需要此var country_id = $(this).val();
操作以防止触发操作。
if (!country_id) {
return;
}