单击后带有额外数据的 HTML 下拉菜单

Posted

技术标签:

【中文标题】单击后带有额外数据的 HTML 下拉菜单【英文标题】:HTML drop down menu with extra data after click 【发布时间】:2014-10-29 16:28:01 【问题描述】:

我需要在 html 中创建一个下拉菜单。这个想法是,当我点击选项时,比如说一个城市,菜单下方会自动显示详细的联系信息。

例如。如果我选择伦敦,应该会自动显示街道地址、电话等。可以使用如下提交按钮,但最好没有。

<form action="process.php" method='post'>
<select name="cities">
<option value="London">London</option>
<option value="NY">NY</option>
<option value="Rome">Rome</option>
<option value="Paris">Paris</option>
</select>
<input type="submit" />
</form>

我的 HTML 不太好,非常感谢一些帮助

【问题讨论】:

我现在没有时间给你答案,但这需要javascript,所以你可能想把它添加到你的标签中,这样javascripters就可以找到你的问题。 @arteo 如果不想使用提交按钮,您可以使用 ajax 或者如果您正在使用提交按钮。在php中获取城市值并显示地址。 这些信息存储在哪里?是在服务器上吗?它在某处硬编码吗?反正你需要js。 【参考方案1】:

this (check this fiddle) 是你要找的吗??

您所需要的只是关于 Javascript 或 Jquery 的想法。上面小提琴中的代码仅供示例或参考。为了更好的使用,请参考 Jquery Ajax。

代码是:

    $('#cities').change(function()
    var data = $('#cities :selected').val();
    document.getElementById("data").style.display = "block";
    if(data === "Paris")
        document.getElementById("data").innerHTML = "You have selected Paris";
    else if(data === "Rome")
        document.getElementById("data").innerHTML = "You have selected Rome";
    else if(data === "NY")
        document.getElementById("data").innerHTML = "You have selected NY";
    else if(data === "London")
        document.getElementById("data").innerHTML = "You have selected London";    
    else
        document.getElementById("data").style.display = "none";
);

【讨论】:

单靠JS能做到吗?帮助表示赞赏 是的,可以做到。请不要随心所欲,虽然它解决了目的,但它不是处理它的优化方式。

以上是关于单击后带有额外数据的 HTML 下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

单击外部编辑器时,Angular js Summernote 下拉菜单未关闭

选择其他人时如何隐藏其他下拉菜单

选择值后如何将下拉菜单转换为标签。单击按钮后再次转换为下拉菜单

带有自动完成 + 静态值的下拉菜单

带有 Twitter Bootstrap 的下拉菜单

Twitter bootstrap 在下拉菜单打开时停止传播