jquery级联下拉问题

发布于 2024-10-26 03:23:59 字数 522 浏览 1 评论 0原文

我使用 jquery 根据第一个和第二个菜单的选择来调出第二个和第三个下拉菜单。

我采用的方法是将所有后续下拉列表设置为 style="display:none" ,并使用 .toggle() 功能在上一个下拉列表中选择时显示它们。

当选择一个项目时,会在末尾添加一个数字以保持唯一的 ID。

这是 jsfiddle: http://jsfiddle.net/36E6m/3/

如您所见, html 不完整,但如果您从第一个中选择“Mortice”并从第二个中选择“Deadlock”,则有足够的内容可以测试它。

到目前为止,我已经让第一个菜单适用于所有项目(以及具有有效 html 的两个项目),但即使这样也停止工作。

现在,只有第一个菜单(Mortice)中的第一个选择才会弹出另一个菜单。

任何有关我做错了什么或我如何做得更好的帮助将不胜感激。

非常感谢,

尼克。

I'm using jquery to bring up a second and third drop down menu based on the selection of the first and second menus.

The method I've adopted is to have all the subsequent drop downs as style="display:none" and use the .toggle() feature to show them when selected in the previous drop down.

When an item is selected a digit is added to the end to maintain unique id's.

Here's the jsfiddle: http://jsfiddle.net/36E6m/3/

As you can see, the html is incomplete but there's enough there to test it if you select 'Mortice' from the first and 'Deadlock' from the second.

So far I've had the first menu working for all items (well the two that have valid html) but even that's stopped working.

Now only the first selection in the first menu (Mortice) will bring up another menu.

Any help on what I'm doing wrong or how I could be doing it better would be gratefully received.

Many thanks,

Nick.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盛夏已如深秋| 2024-11-02 03:23:59

不要使用 .click(),而是使用 .change()

$('#type_1').change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

此外,dom 中的每个元素的 id 必须是唯一的。 (类型 2 下的两个下拉菜单具有相同的 id)您的下拉菜单选择器应该类似于

$("select[name='type_2']").change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

这里是 jsfiddle.

Instead of using .click() look into using .change().

$('#type_1').change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

Also an id has to be unique per element in the dom. (your two drop down under type 2 have the same id) Your selector for the dropdowns should be something like

$("select[name='type_2']").change(function() {
    var o = $(this).find(":selected");
    $('#' + o.attr("id") + '2').toggle();
});

Here is a slightly reworked example on jsfiddle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文