Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从滚动列表中的选定项生成滚动列表_Javascript_Perl - Fatal编程技术网

Javascript 如何从滚动列表中的选定项生成滚动列表

Javascript 如何从滚动列表中的选定项生成滚动列表,javascript,perl,Javascript,Perl,我试图建立一个表格。有一个由perl CGI生成的滚动列表,项目也将由perl CGI提取和处理。然而,我被困在进一步改进这种形式。因为对于某些项目,也有不同的处理方式。我想要的是,当用户点击这个滚动列表中的一个项目时,它将生成另一个滚动列表或弹出列表以供更多选择。用户可以进一步从这个滚动列表或弹出列表中进行选择,选择将被Perl提取和处理。 我知道这个客户端工作可能必须由javascript完成。我知道一些javascript,至少可以理解其中编写的大部分代码,但我没有编写它们来处理此类事件驱

我试图建立一个表格。有一个由perl CGI生成的滚动列表,项目也将由perl CGI提取和处理。然而,我被困在进一步改进这种形式。因为对于某些项目,也有不同的处理方式。我想要的是,当用户点击这个滚动列表中的一个项目时,它将生成另一个滚动列表或弹出列表以供更多选择。用户可以进一步从这个滚动列表或弹出列表中进行选择,选择将被Perl提取和处理。 我知道这个客户端工作可能必须由javascript完成。我知道一些javascript,至少可以理解其中编写的大部分代码,但我没有编写它们来处理此类事件驱动条件并将结果与Perl CGI结合的经验

有人能告诉我如何使用javascript实现这一点吗?非常感谢。 小宽

例如: 我有一个Perl CGI的滚动列表:

print scrolling_list(-name=>"animals",-values=>["dog","cat"],-labels=>{dog=>'dog',cat=>'cat'});

#This will generate a scrolling list of "dog" and "cat". What I want is when a user click on dog to make a selection, this scrolling list will generate another scrolling list or pop-up list such as:

print popup_menu(-name=>"action", -values=>['walking','training'],-labels=>{walking=>'walking the dog',training=>'training the dog'});

良好实践规定表单必须在没有JavaScript的情况下可访问。因此,我们不是在用户选择某个内容时生成一个新的表单片段,而是提前生成所有表单片段,并使用JavaScript隐藏它们,当用户选择某个内容时,它将变得不隐藏

use CGI qw();
my $c = CGI->new;
print
    $c->header('text/html'),
    $c->start_html(
        -script => [
            { -src => 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js', },
            q<
                function hide_all () {
                    jQuery('#dog,#cat').hide();
                }
                jQuery(document).ready(function() {
                    hide_all();
                    jQuery('select[name="animals"]').click( function(e) {
                        hide_all();
                        jQuery('#' + jQuery(e["target"]).val()).show();
                    });
                });
            >,
        ],
    ),
    $c->scrolling_list(
        -name   => 'animals',
        -values => [qw(dog cat)],
        -labels => {dog => 'the dog', cat => 'the cat'},
    ),
    $c->popup_menu(
        -id     => 'dog',
        -name   => 'action1',
        -values => [qw(walking training)],
        -labels => {walking => 'walking the dog', training => 'training the dog'},
    ),
    $c->popup_menu(
        -id     => 'cat',
        -name   => 'action2',
        -values => [qw(playing feeding)],
        -labels => {playing => 'playing with the cat', feeding => 'feeding the cat'},
    ),
;

你在问——你描述的是一种欲望,而不是一个问题。你知道HTML和DOM操作的基础知识吗?你尝试过什么,你在哪一部分遇到了问题,没有别人的帮助,你在哪里陷入困境?我没有对这个问题投反对票,但至少你应该得到一个对反对票和缺乏答案的解释。谢谢daxim。我更新了原来的帖子。谢谢daxim,我刚刚测试了你的代码块,它工作起来很有魅力;我还可以从第二个弹出菜单中提取选择。看来JQuery是一个很重要的工具,我会努力学习的。再次感谢你们。