【问题标题】:Passing parameters on onChange of html select在 html select 的 onChange 上传递参数
【发布时间】:2014-06-23 13:40:45
【问题描述】:

假设我有两个包含相同选择框的 html 页面:

<select onchange="this.options[this.selectedIndex].value && (window.location =    this.options[this.selectedIndex].value);">
<option value="/site1.php">Site1</option>
<option value="/site2.php">Site2</option>
</select>

我正在寻找一种将 selectedIndex 的值传递到下一页的方法,因此我也可以在第二页选择框中使用它。有什么建议吗?

提前致谢

【问题讨论】:

  • 可以通过POST、GET、COOKIE、SESSION、localStorage传递
  • 问题是当我通过 php 传递它时,我无法通过 javascript 设置 selectedindex,因为我无法访问 php 变量。

标签: javascript html select onchange


【解决方案1】:

本地存储

商店:

localStorage.userEdits=this.options[this.selectedIndex].value;

获取,在另一页上:

var yourIndex = localStorage.userEdits;

散列

设置:

window.location.href="yourURL#index="+this.options[this.selectedIndex].value;

获取:

var yourIndex=window.location.hash.replace("index=","").parseInt();

【讨论】:

  • 这是一个有效的解决方案,但不适用于我的场景,因为该网站将被较旧的互联网浏览器使用。
  • 谢谢,但对我来说这似乎不是一种优雅的方式,因为我还传递了其他 $get 变量。
  • @Dede1989 哦,不适合吗?但它有效,没想到你想要一个优雅的地址!
【解决方案2】:

您可以使用查询参数:

window.location = 'YOUR_URL?selectedIndex=' + this.options[this.selectedIndex].value

使用查询参数会强制您解析它们。 here 解释了这一点(你可以用纯 JS 做得很好)。

【讨论】:

  • 看我的第一个答案:)
猜你喜欢
  • 2011-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多