【问题标题】:change browser href in combobox option在组合框选项中更改浏览器 href
【发布时间】:2013-08-08 13:24:28
【问题描述】:

我尝试从数据库中的表中创建数据列表。我使用选择选项来执行此操作,因为只允许用户选择一个。

我是这样做的:

<select name="test">
 <option value="line1">Line1</option>
 <option value="line2">Line2</option>
 <option value="other.php" onClick="window.location.href='other.php'">
 Other
</option>
</select>

这适用于 IE 和 Firefox,但不适用于 Google Chrome。

不能将onClick 放在&lt;select&gt; 标记中,因为它们没有href,我需要它们的值来获取主键并将某些内容存储在表中。

我希望你能帮助我。

更新:这是我的情况的解决方案,由Harry解决

<select name="test" onchange="this.options[this.selectedIndex].value.indexOf('.php')!=-1 && 
         (window.location = this.options[this.selectedIndex].value);">
 <option value="line1">Line1</option>
 <option value="line2">Line2</option>
 <option value="other.php">Other</option>
</select>

【问题讨论】:

  • 通常情况下,&lt;option&gt; 标签上没有点击事件

标签: php html css sql google-chrome


【解决方案1】:

试试下面的代码,看看它是否能解决你的问题。您不需要在 select 标记中包含 href 值才能使其工作。 href 可以在您选项的 value 标记中。

更新:仅当所选选项标签的value 中包含.php 时,以下代码才会执行​​重定向。对于前两个选项,不会执行任何操作。

<select name="test" 
    onchange="this.options[this.selectedIndex].value.indexOf('.php')!=-1 && 
             (window.location = this.options[this.selectedIndex].value);">
    <option value="line1">Line1</option>
    <option value="line2">Line2</option>
    <option value="other.php">Other</option>
</select>

【讨论】:

  • 这适用于链接,但是当您单击 Line2 时,它将返回 Line1 并在 url ?line2
  • @Kenny 所以只有第三个选项需要链接而不是其他选项,我的理解是否正确?检查对不同版本的答案的更新,如果它仍然不能解决您的问题,请告诉我。
【解决方案2】:

这不是有效的 HTML。至少应该是:

<option value="other.php" onClick="window.location.href='other.php'">

【讨论】:

  • 对不起,我打字太快了,我是按你的方式写的 :)
【解决方案3】:

试试这个

<select name="test" 
onchange="var val = this.value; 
  if (val.indexOf('other.php')!=-1) window.location=loc">
 <option value="line1">Line1</option>
 <option value="line2">Line2</option>
 <option value="other.php">Other</option>
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2016-04-18
    相关资源
    最近更新 更多