如何更改 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}
对象,其中 0
和 context
都包含 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);
我正在开发一个 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}
对象,其中 0
和 context
都包含 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);