首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转到上一页时返回ajax值

转到上一页时返回ajax值
EN

Stack Overflow用户
提问于 2020-11-20 19:59:22
回答 1查看 34关注 0票数 0

我有一个Ajax运行,以获取一些基于下拉字段的数据。这是有效的,但当我过滤并转到详细页并返回到上一页时。我再次看到所有项目,但下拉列表中的项目仍显示上次选中的过滤器。

当我尝试使用jquery获取此数据时,它会显示第一个选项是活动的,但它会显示我上次选择的任何选项。

下拉列表:

代码语言:javascript
复制
<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函数:

代码语言:javascript
复制
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,尽管显示屏上显示的是“德国”。

Visual of the problemeN

EN

回答 1

Stack Overflow用户

发布于 2020-11-21 02:01:55

您可以在页面加载时运行此命令

代码语言:javascript
复制
$('#filter-countries option:first').prop('selected', true);`

如果您已经调用了initFilters,那么您可能需要在var country_id = $(this).val();之后执行此操作,以防止触发操作。

代码语言:javascript
复制
if (!country_id) {
    return;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64929067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档