下拉菜单在css中折叠

Amr*_*eya 8 html javascript css jquery twitter-bootstrap-3

我正在使用代码片段

http://bootsnipp.com/snippets/featured/advanced-dropdown-search

我对代码进行了以下更改

 <div class="col-md-12">
            <form action="./" method="POST" autocomplete="on">
                <div class="input-group" id="adv-search">
                    <input type="text" class="form-control"
                        placeholder="Search for snippets" id="mainForm" name="searchBox" />
                    <div class="input-group-btn">
                        <div class="btn-group" role="group">
                            <div class="dropdown dropdown-lg">
                                <button type="button" class="btn btn-default dropdown-toggle"
                                    data-toggle="dropdown" aria-expanded="false">
                                    <span class="caret"></span>
                                </button>
                                <span class="dropdown-menu dropdown-menu-right" role="menu">
                                    <div class="form-horizontal" role="form">
                                        <div class="form-group">
                                            <label for="filter">Filter by</label> <select
                                                class="form-control" name="docType">
                                                <option value="0" selected>All Sources</option>
                                                <option value="1">Option 1</option>
                                                <option value="2">Option 2</option>

                                            </select>
                                        </div>
                                        <div class="form-group">
                                            <label for="contain">Author / Modifier</label> <input
                                                class="form-control" type="text" name="authorName" />
                                        </div>
                                        <div class="form-group">
                                            <label for="contain">Contains the words</label> <input
                                                class="form-control" type="text" name="words" />
                                        </div>
                                        <!-- <button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button> -->
                                    </div>
                                </span>
                            </div>
                            <button type="submit" class="btn btn-primary">
                                <span class="glyphicon glyphicon-search" aria-hidden="true"></span>
                            </button>
                        </div>
                    </div>
                </div>
            </form>
        </div>
Run Code Online (Sandbox Code Playgroud)

移动上面的表单标签后,只需单击下拉列表中的任意位置即可折叠下拉菜单.

有人可以解释一下原因吗?

我尝试做了很多改变,但对我没什么用.

https://jsfiddle.net/tj2y5ptp/

Sha*_*set 4

尝试删除data-toggle="dropdown"并使用 jquery.toggleClass('open');和.removeClass('open');下拉open/close菜单,(然后只需单击其外部(在主体上)即可关闭下拉菜单 nenu:

打开下拉菜单:

$('.dropdown-lg .btn').on('click', function (event) {
    $(this).parent().toggleClass('open');
});
Run Code Online (Sandbox Code Playgroud)

关闭下拉菜单(单击正文时):

$('body').on('click', function (e) {
    if (!$('.dropdown-lg').is(e.target) 
        && $('.dropdown-lg').has(e.target).length === 0 
        && $('.open').has(e.target).length === 0
    ) {
        $('.dropdown-lg').removeClass('open');
    }
});
Run Code Online (Sandbox Code Playgroud)

请参阅更新的小提琴,希望对您有帮助,谢谢。