我想知道有没有任何解决方案可以通过JavaScript或Jquery点击一些复选框,用一些新值更改或更新URL的查询字符串部分(在浏览器的地址栏中可见)。我想在没有任何jQuery插件的情况下做到这一点。
当用户单击组中的任何复选框时,将根据用户选择的复选框值从数据库中提取数据。同时,URL的查询字符串也将更改为新的更新值。请注意,在整个过程中永远不会重新加载页面。当复选框被选中时,我们可以运行AJAX。我们如何才能做到这一点?我们将非常感谢您的演示。
是的,这是一件非常常见的事情。window.replaceState是您要查找的函数。或者,如果您希望允许用户将back
转到复选框的前一状态,也可以使用pushState
,但这是更多的工作,并不总是期望的。
再说一遍,您实际上需要一些东西来将一个URL更改为另一个URL。将URL操作为字符串会适得其反,因此您可以使用URI.js.
使用窗口。history类似:
window.history.pushState('page2', 'Title', '/new-uri');
对于您的案例,您将有两个嵌套函数:包含AJAX调用的Event Listener+此AJAX调用的回调:
$('[input]').change(function(){
if(this.checked){
//AJAX
$.get("URL",{},function(data){
//AJAX - Callback
window.history.pushState('page2', data.title, data.url);
});
}
});