如何更改 link 上的 URL 参数,该参数具有 # 作为 href 并在表单内提交

How to change a URL parameter on a link that has # as href and is submitted inside a form

我正在开发一个 drupal 模块,它从 API 获取图像,添加可选择的搜索过滤器并生成分页。如果我去例如第 7 个分页页面并添加一个仅跨越 3 页的过滤器,这将导致根本不显示任何内容。

解决方法:添加过滤器后,回到第一页。现在我的问题是该页面是一个 url 参数并且过滤器制作的 link 设置为 href='#' 所以基本上这个页面是。

所以我尝试调试处理点击的 javascript:

$('#blabla .filter-url').click(function(e) {
    e.preventDefault();

    var link = $(e.currentTarget);
    console.log(link);
    var filter_key = link.data('filter-key');
    var filter_value = link.data('filter-value');
    // var active = link.hasClass('active');

    var filters_input = $('#blabla input[name="filters"]');

    var current_filters = JSON.parse(filters_input.val() || '{}');
    current_filters.filters = current_filters.filters || [];

    var exists = ($.grep(current_filters.filters, function(e, i){
        return e.key == filter_key;
    }).length);
    if (exists) {
         //Remove current filter from list
        current_filters.filters = $.grep(current_filters.filters, function(e, i){
            return e.key != filter_key;
        });
        link.removeClass('active');
    }

    // Add current filter to list
    current_filters.filters.push({
        key: filter_key,
        value: filter_value,
    });
    link.addClass('active');

    filters_input.val(JSON.stringify(current_filters));
    $('#formname').submit();
});

link对象:

link 对象有一个 {0, context and length} 对象,其中 0context 都包含 url 的多个实例,我应该编辑哪一个?

我只是想把URL/get参数page=xxx操作为page=0,所以又回到了第一页。如何实现?

我找错地方了。在 onclick 函数的末尾,它会提交表单。我不得不像这样更改此表单的 action

var old_form_action = $('#formname').attr('action');
var new_form_action = old_form_action.replace(/(page=)[^\&]+/, '' + '0');
$('#formname').attr('action', new_form_action);