多选表单的选项分组


Option grouping for multi-select form

我想知道是否有一种方法可以在多选列表中对选项值进行分组。

为了更清晰地查看,我使用以下表单列表-->http://blog.jeremymartin.name/2008/02/easy-multi-select-transfer-with-jquery.html#

我即兴编写了上面的脚本,这样就有了一定数量的子类别的父类别。例如:父母:家具儿童:椅子、桌子、抽屉、橱柜、床。

我可以通过php对其进行编码,以显示一个非常漂亮的选择表单列表,其中的类别由其父母分隔,但当我尝试通过jquery将它们从选择框2中删除回选择框1时,问题就出现了。append只是将我的子类别返回到列表的底部。

是否有这样的方法,当用户单击删除按钮时,该类别将返回到其自己的父类别下,而不是列表的底部。

以下是那些需要它的人的代码。

                //GET CATEGORIES SELECT OPTIONS
                                            .
                                            .
                                      Database Query
                                            .
                                            .
                foreach($cat_values as $opt_values){
                                               .
                                               .
                          Database Query to check if Category have parent.
                       $cat_is_parent == "0" means the option value is the parent.
                                               .
                                               .
                    if($cat_is_parent == "0"){
                        echo '<option disabled="disabled" value="'.$opt_values[0].'" style="font-size:15px">'.$opt_values[1].'</option>';  
                    }
                    else{
                        echo '<option value="'.$opt_values[0].'">-->'.$opt_values[1].'</option>';
                    }
                }

您将不得不使用.after()函数而不是.append()。正如您在文档中看到的,您可以指定父元素,并使用.after()函数将所选元素放在它之后。

请参见此示例:http://jsfiddle.net/gntGG/1/

将元素返回到第一个列表时,总是将放在第一个选项之后。