繁体   English   中英

javascript在url中传递变量,然后选择选择选项

[英]javascript pass a variable in url then select option is selected

我试图弄清楚如何在一个页面上传递分配给链接的变量,然后在另一个页面上的表单中预填充选择选项。

源页面链接:example.com/page?value=2

表单页面:

<select name="select_name" id="id_name" class="select-success">
<option selected="selected" value=""></option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>

通过阅读各种文章和代码,我必须处理不符合该标准的情况。 我有点不识字。 我用以下形式将其拼凑在页面上:

document.getElementByType(“select").value = location.search.replace('?','');

没有得到任何结果。 该表单是在后端生成的,因此我无法向<option>添加id / class或其他任何内容。

这会将查询字符串转换为键=>值对象:

var qs = location.search.substr(1).split('&').reduce(function(prev, cur) {
  var split = cur.split('=');
  prev[split[0]] = decodeURIComponent(split[1]);
  return prev;
}, {});

这将设置所选项目:

window.addEventListener('load', function() {
   document.getElementById("id_name").value = qs.value;
});

我会使用本地存储来做到这一点。 签出: https : //github.com/js-cookie/js-cookie

仅在第一页上:

Cookies.set('name', 'value');

在下一页上:

Cookies.get('name'); // => Returns 'value'

我不是Java语言专家,但是您可以肯定地使用一些以前制作的解决方案来解决您的问题。

此StackOverflow的另一篇文章中,您可以找到如何修改URL来设置GET参数,以及如何检查该参数是否已经存在。

要更改SELECT值,建议您为其分配一个ID,然后通过ID而不是Type来引用它。 像这样:

document.getElementById('id_name').value = window.location.search.replace("?", "");

希望这可以帮助!

1.)您没有正确解析搜索字符串。

location.search // "?value=2"

2.). .getElementByType()不是方法

有很多解析查询字符串值的方法,但这是一种适合您的1行解决方案。

document.getElementById('id_name').value = location.search.replace('?value=','');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM