1

首先,我创建了一个选择列表来选择一个选项,当一个选项被选中时,下面使用引导手风琴组件显示附加信息。在这里看看它是如何工作的 - http://bootply.com/69516

所以上面的方法也是我想要的,但是它看起来很垃圾 - 理想情况下我希望它看起来像引导下拉框。我找到了一些 jquery 来执行此操作(如下),这是插入 jquery 的 bootply 叉 - http://bootply.com/69518

不幸的是,它不起作用,我猜测转换删除了选择列表中最初的“值”字段。我可以使用 jquery,但仍在学习,这对我来说太多了!

jQuery(function($){
    $('select').each(function(i, e){
        if (!($(e).data('convert') == 'no')) {                                                    
            $(e).hide().wrap('<div class="btn-group" id="select-group-' + i + '" />');
            var select = $('#select-group-' + i);
            var current = ($(e).val()) ? $(e).val(): '&nbsp;';         
            select.html('<input type="hidden" value="' + $(e).val() + '" name="' + $(e).attr('name') + '" id="' + $(e).attr('id') + '" class="' + $(e).attr('class') + '" /><a class="btn" href="javascript:;">' + current + '</a><a class="btn dropdown-toggle" data-toggle="dropdown" href="javascript:;"><span class="caret"></span></a><ul class="dropdown-menu"></ul>');                                   
            $(e).find('option').each(function(o,q) {
                select.find('.dropdown-menu').append('<li><a href="javascript:;" data-value="' + $(q).attr('value') + '">' + $(q).text() + '</a></li>');                    
                    if ($(q).attr('selected'))
                        select.find('.dropdown-menu li:eq(' + o + ')').click();
            });
            select.find('.dropdown-menu a').click(function() {
                select.find('input[type=hidden]').val($(this).data('value')).change();
                select.find('.btn:eq(0)').text($(this).text());
            });
        }
    });
});
4

2 回答 2

0

你在末尾缺少一个分号

$('select[name="panel"]').change(function(event){
    var selected = $(this).find('option:selected');
    var value = selected.attr("value");
    var name=  $(this).attr("name");
    var selector = '[for-field="'+name+'"]';
    $('.accordion-body'+selector).addClass('collapse');
    var selectorForValue = selector+'[for-value="'+value+'"]';
    var selectedPanel = $('.accordion-body'+ selectorForValue  );
    selectedPanel.removeClass('collapse');
})
于 2013-07-25T17:32:28.400 回答
0

http://bootply.com/69711 - 无法将这两个脚本合并在一起,因此必须对其进行样式设置。

于 2013-07-26T12:08:52.727 回答