下拉列表中的Bootstrap搜索表单

时间:2014-02-03 00:05:28

标签: javascript jquery twitter-bootstrap cakephp twitter-bootstrap-3

我的菜单中有一个下拉菜单,但是当我点击下拉列表中的搜索表单字段时,下拉菜单会立即关闭。

这是我的代码:

 <button id="sharebutton" type="button" class="btn btn-sm btn-info" data-toggle="dropdown" data-hover="dropdown"
            data-close-others="true"><i class="fa fa-search"></i> Search
    </button>

    <ul class="dropdown-menu extended notification">


        <li>
            <div class="form-group">
                <?php echo $this->Form->create('Search', array('controller' => 'searches', 'action' => 'prodsearch')); ?>


                <div class="input-group">
                    <?php echo $this->Form->input('newsearchterm', array('required' => true, 'class' => 'form-control', 'label' => false, 'placeholder' => 'Search Products...', 'name' => 'newsearchterm')); ?>
                    <span class="input-group-btn">

                                            <?php
                                            echo $this->Form->button(
                                                '<i class="fa fa-search"></i>',
                                                array(
                                                    'type' => 'submit',
                                                    'class' => 'btn blue',
                                                ),
                                                array('escape' => 'false')
                                            );
                                            ?>


                                        </span>
                </div>


            </div>

            <?php echo $this->Form->end(); ?>


        </li>


    </ul>

(我正在使用CakePHP,这就是为什么表单代码有点滑稽)

2 个答案:

答案 0 :(得分:2)

stopPropagation()添加到您的搜索表单字段。

jQuery('.your-form-selector').click(function (e) {
     e.stopPropagation();
});

其他一切都会按预期工作。

JQuery reference

我只是寻找相同的东西,并在here

找到了它

答案 1 :(得分:0)

删除“li”标签并尝试。像这样:

        <div class="form-group">
            <?php echo $this->Form->create('Search', array('controller' => 'searches', 'action' => 'prodsearch')); ?>


            <div class="input-group">
                <?php echo $this->Form->input('newsearchterm', array('required' => true, 'class' => 'form-control', 'label' => false, 'placeholder' => 'Search Products...', 'name' => 'newsearchterm')); ?>
                <span class="input-group-btn">

                                        <?php
                                        echo $this->Form->button(
                                            '<i class="fa fa-search"></i>',
                                            array(
                                                'type' => 'submit',
                                                'class' => 'btn blue',
                                            ),
                                            array('escape' => 'false')
                                        );
                                        ?>


                                    </span>
            </div>


        </div>

        <?php echo $this->Form->end(); ?>


   </ul>

在Bootstrap导航下拉列表中添加表单时,这对我有用。