php - 单击链接以显示下拉菜单

标签 php javascript symfony1

我只想在单击链接时显示“免费聊天”链接。它必须显示一个带有选项“yes”“no”的下拉菜单。

链接还不能转到任何地方,只有当选择“yes”时,它才必须重定向到页面。

我目前有代码:

<a href="" id="link" name="link" onClick="yesnolist(1)">Free Chat</a>

和我的 JavaScript:

<script type="text/JavaScript">
  function yesnolist()
  {
     var e = document.getElementById("link");
     var strUser1 = e.options[e.selectedIndex].value;
     if (strUser1 == "1")
        window.location.href = "http://.........";

     return strUser1;
  }
 </script>

最佳答案

我不确定我是否完全理解你的问题。

我假设您已经说过链接:

<a href="" id="link" name="link" onClick="yesnolist(1)">Free Chat</a>

现在,当有人点击时,您希望它创建一个下拉菜单?我不确定您的意思是 anchor 元素旁边的下拉菜单还是用下拉菜单替换 anchor 元素。

我会建议,在任何时候,使用 jQuery for javascript,但因为看起来你没有使用它:

<a href="#yesno" id="link" name="link">Free Chat</a>
<select id="yesno_id" name="yesno" style="display:none;">
    <option value="1">Yes</option>
    <option value="2">No</option>
</select>

我们还不会显示下拉列表,即使它已经存在。现在我们向 #link 和 #yesno_id 添加一个监听器(请注意,以下代码要么位于标记之前,要么应放置在正文 onload 监听器内)。

<script type="text/javascript">
document.getElementById('link').addEventListener('click', function() {
    var yesno = document.getElementById('yesno_id');
    yesno.style.display = 'block';
    yesno.addEventListener('change', function() {
        if (this.value === '1') {
            window.location.href = "http://.........";
        }
        else {
            this.style.display = 'none';
        }
    }, true);

}, true);
</script>

我根本没有测试它,并且很可能会出现错误(我什至没有在编辑器上编写它),但它应该为您提供总体思路。

这里我们使用不显眼的 JavaScript:我们不在 HTML 上添加任何对 JavaScript 的引用。我们只有 id 和类,就像任何没有 JS 的 HTML 一样。然后,除此之外,我们还使用 JavaScript 访问 HTML 元素,并绑定(bind)单击和更改事件处理程序(对应于每个元素)。

如果用户点击链接然后选择“否”,它将隐藏下拉列表,如果选择"is",它将重定向到您所说的网址。如果确实在 anchor 的 href 上有链接并取消事件传播,那就太好了。然后从 yesno_id 事件处理程序中获取 href 并重定向到该地址。这样,如果 JS 被禁用,它会直接带你到页面(尽管它不会“确认”)。

关于php - 单击链接以显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5867517/

相关文章:

javascript - 发送电子邮件至,然后在 javascript 中重定向

javascript - Ruby on Rails : How to add a link_to in a select_tag

mysql - Have 字段 Doctrine 中的子查询

php - 使用准备好的语句将多个值插入到多行中 PHP、MYSQL

php - Laravel Searchbar 类 'products' 未找到/ProductController@?

javascript - 链接 2 个 Mongoose 模式

php - 后端的 url_for 或 link_to 与管理生成器 Symfony

php - 如何将 <div> 处理为表单 &lt;input&gt;

php - 错误 : mysql_fetch_assoc ( Table Field Name )

symfony1 - Symfony - sfDoctrineGuard - 在两个 Symfony 项目之间共享模型文件