Javascript 如何在window.location.replace之后保留相同的表单

Javascript 如何在window.location.replace之后保留相同的表单,javascript,jquery,Javascript,Jquery,我有一个带有选择下拉菜单的表单,它调用一个javascript函数,将参数作为查询字符串重新加载页面。我希望在替换页面时选择相同的下拉选项。我该怎么做呢 选择表格: JS: 一种解决方案是从您传递的url中读取查询参数window.location.href+“&fill\u position=“+fill\u pos。i、 例如,填充位置,然后窗口加载处理结果 function getUrlVars() { var vars = {}; var parts = window.

我有一个带有选择下拉菜单的表单,它调用一个javascript函数,将参数作为查询字符串重新加载页面。我希望在替换页面时选择相同的下拉选项。我该怎么做呢

选择表格:

JS:


一种解决方案是从您传递的url中读取查询参数
window.location.href+“&fill\u position=“+fill\u pos
。i、 例如,填充位置,然后窗口加载处理结果

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}


var fillPosition = getUrlVars()["fill_position"];
if (fillPosition !== null) {
  $("#fill_position").val(fillPosition);
}

首先必须解析GET参数

以下是本节中提供的功能:

将其添加到代码中,然后使用以下代码段:

var fillPosition = getURLParameter("fill_position");
if (fillPosition !== null) {
  $("#fill_position").val( getURLParameter("fill_position") );
}

我会投票支持康弗里克简洁而有用的回答,但缺乏足够的声誉。我也会在你的帖子上评论以下问题,但同样,缺乏声誉

问题:为什么要重新加载页面?使用jquery或类似工具执行ajax调用来发布所选值并动态插入结果的后续内容不是更简单吗


意见:这将使您能够使用一些转换,保持地址栏url干净,并改善用户体验(例如,没有页面加载延迟/屏幕刷新)。

应该是
getUrlVars()[“fill_position”]
,不是吗?我真的很想这么做,但我正在构建一个rails应用程序,我认为这是将数据传递给ruby的唯一方法。。不管怎样,我把康弗里克投给了你。干杯,谢谢。和Ruby玩得开心。我在那里只有实习生级别的经验,但我想你应该能够构建一个控制器来接收ajax调用——应该非常简单,但可能不适用于你的应用程序,这取决于你的时间限制、安全考虑以及MVC模式开发的总体舒适度。如果您有时间,您可以了解一些值得了解的想法,因为它们将为您节省大量时间。@JECarterII欢迎使用StackOverflow:)我同意您的建议将为用户提供更好的UI体验。使用散列标签会更好,因为它们可以为URI添加书签。@ComFreek-cheers-我忘了使用散列标签了。同意,这是一个很好的解决方案。谢谢你的欢迎。多年来,StackOverflow对我来说是一个非常有用的资源,如果我有能力,是时候回馈了。
function getURLParameter(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}
var fillPosition = getURLParameter("fill_position");
if (fillPosition !== null) {
  $("#fill_position").val( getURLParameter("fill_position") );
}