【问题标题】:make link in option comboboxes在选项组合框中创建链接
【发布时间】:2013-03-04 03:05:24
【问题描述】:

我正在尝试在组合框中创建链接,但出现错误。

这是我的 JS 函数:

<script type="text/javascript">
function handleSelect(elm)
{
    window.location = elm.value+".php";
}
</script>

这是组合框的形式

<select name="Pilihan">
    <option value="" selected href="view1.php">- Item -</option>
    <option value="" selected href="view2.php">- Budg -</option>
    <option value="" selected href="view3.php">- Dept -</option>
    <option value="" selected href=>- Silahkan Pilih -</option>
</select>

【问题讨论】:

  • @newbie,当你说它有效时,接受以下之一作为答案:-)

标签: php javascript option


【解决方案1】:

看起来你可能错过了这个:

<select name="Pilihan" onchange="handleSelect(this)">

或者类似的东西。

另外,您可能不想将所有选项默认为selected

更新

我现在看到了问题,您正在尝试使用 option 值,但您似乎想要实际使用选项标签的 href。你不妨试试:

<option value="view1.php">- Item -</option>
<option value="view2.php">- Budg -</option>

然后是建议的事件绑定方法之一。

【讨论】:

  • 请使用事件注册而不是内联事件处理程序
  • 请使用 jQuery……当然,也可以是document.getElementByTagName("Pilihan").onchange=function(){handleSelect(this)};
【解决方案2】:

href 不是选项标签的有效属性,您不能真正将链接放在选择下拉列表中。但是,您可以使用一些 javascript 魔术来执行此操作,如下所示:

<select name="Pilihan" onchange="document.location = this.options[this.selectedIndex].value;">
   <option value="view1.php">- Item -</option>
   <option value="view2.php">- Budg -</option>
   <option value="view3.php">- Dept -</option>
</select>

或使用事件处理程序:

<select name="Pilihan">
   <option value="view1.php">- Item -</option>
   <option value="view2.php">- Budg -</option>
   <option value="view3.php">- Dept -</option>
</select>

<script type="text/javascript">
    document.getElementsByName('Pilihan')[0].onchange = function() {
        document.location.href = this.options[this.selectedIndex].value;
    }
</script>

【讨论】:

  • 用户似乎是 JavaScript 新手。最好不要引入过时的内联处理程序。
  • @Asad - 内联处理程序并没有过时,它们是完全有效的,但在单独的脚本中使用事件处理程序通常是更好的做法,但在这种情况下,它所做的只是离开站点,因为它重定向,所以这不是什么大问题。
  • 过期不代表无效。这意味着一种方法已被更好的方法所取代。这不是关于这个特定的脚本,而是关于 JS 新手被介绍给不太受欢迎的事件注册模型。
  • @Asad - 内联事件处理程序并没有过时或被取代,它们仍在世界上一些大型网站上使用,例如 Google 和 Facebook,但在大多数情况下它是 更好的做法 将功能与形式和外观分开,但我倾向于同意,我永远不会在自己的网站上使用内联 JS,所以我也会添加另一个选项。
猜你喜欢
  • 1970-01-01
  • 2012-10-27
  • 2020-07-16
  • 2012-06-16
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多