在combobox选项中更改浏览器href

时间:2013-08-08 13:24:28

标签: php html css sql google-chrome

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

我是这样做的:

<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,但不适用于谷歌浏览器。

onClick放在<select> - 标记中不是一个选项,因为它们没有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>

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

试试这个

<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>

答案 2 :(得分:0)

尝试以下代码并检查它是否解决了您的问题。您无需在href代码中使用select值即可生效。 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>