Twitter Bootstrap inline input with dropdown

后端 未结 6 1215
-上瘾入骨i
-上瘾入骨i 2020-12-12 23:26

I\'m trying to display a text input inline with a dropdown button. I can\'t figure out how to do this though. Here\'s the HTML I\'ve tried (I\'ve put all of it on a single

相关标签:
6条回答
  • 2020-12-13 00:08

    This is the code for Bootstrap with input search dropdown. I search a lot then i try its in javascript and html with bootstrap,

    HTML Code :

    <div class="form-group">
        <label class="col-xs-3 control-label">Language</label>
        <div class="col-xs-7">
            <div class="dropdown">
              <button id="mydef" class="btn dropdown-toggle" type="button" data-toggle="dropdown" onclick="doOn(this);">
                <div class="col-xs-10">
                    <input type="text" id="search" placeholder="search" onkeyup="doOn(this);"></input>
                </div>
                <span class="glyphicon glyphicon-search"></span>
             </button>
          <ul id="def" class="dropdown-menu" style="display:none;" >
                <li><a id="HTML" onclick="mydef(this);" >HTML</a></li>
                <li><a id="CSS" onclick="mydef(this);" >CSS</a></li>
                <li><a id="JavaScript" onclick="mydef(this);" >JavaScript</a></li>
          </ul>
          <ul id="def1" class="dropdown-menu" style="display:none"></ul>
        </div>
    </div>
    

    Javascript Code :

    function doOn(obj)
         {
    
            if(obj.id=="mydef")
            {
                document.getElementById("def1").style.display="none";
                document.getElementById("def").style.display="block";
            }
            if(obj.id=="search")
            {
                document.getElementById("def").style.display="none";
    
                document.getElementById("def1").innerHTML='<li><a id="Java" onclick="mydef(this);" >java</a></li><li><a id="oracle" onclick="mydef(this);" >Oracle</a></li>';
    
                document.getElementById("def1").style.display="block";
            }
    
        }
        function mydef(obj)
        {
            document.getElementById("search").value=obj.innerHTML;
            document.getElementById("def1").style.display="none";
            document.getElementById("def").style.display="none";
        }
    

    You can use jquery and json code also as per your requirement.

    Output like:

    0 讨论(0)
  • 2020-12-13 00:09

    As of Bootstrap 3.x, there's an example of this in the docs here: http://getbootstrap.com/components/#input-groups-buttons-dropdowns

    <div class="input-group">
      <input type="text" class="form-control" aria-label="...">
      <div class="input-group-btn">
        <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Action <span class="caret"></span></button>
        <ul class="dropdown-menu dropdown-menu-right" role="menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li class="divider"></li>
          <li><a href="#">Separated link</a></li>
        </ul>
      </div><!-- /btn-group -->
    </div><!-- /input-group -->
    
    0 讨论(0)
  • 2020-12-13 00:10

    Daniel Farrell's Bootstrap Combobox does the job perfectly. Here's an example from his GitHub repository.

    $(document).ready(function(){
      $('.combobox').combobox();
      
      // bonus: add a placeholder
      $('.combobox').attr('placeholder', 'For example, start typing "Pennsylvania"');
    });
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-combobox/1.1.8/css/bootstrap-combobox.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-combobox/1.1.8/js/bootstrap-combobox.min.js"></script>
    
    <select class="combobox form-control">
      <option></option>
      <option value="PA">Pennsylvania</option>
      <option value="CT">Connecticut</option>
      <option value="NY">New York</option>
      <option value="MD">Maryland</option>
      <option value="VA">Virginia</option>
    </select>

    As an added bonus, I've included a placeholder in script since applying it to the markup does not hold.

    0 讨论(0)
  • 2020-12-13 00:13

    Current state: default implementation in docs

    Currently there is a default implementation of input+dropdown combo in the documentation here (search for "Button dropdowns"). I leave the original solution for the record and for those who cannot use solution now included in the documentation.

    Original solution

    Yes, it is possible. As a matter of fact, there is one example in the Twitter Bootstrap documentation (follow the link and search "Examples" for dropdown buttons):

    <div class="btn-group">
        <a class="btn btn-primary" href="#">
            <i class="icon-user icon-white"></i> User
        </a>
        <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
            <span class="caret"></span>
        </a>
        <ul class="dropdown-menu">
            <li><a href="#"><i class="icon-pencil"></i> Edit</a></li>
            <li><a href="#"><i class="icon-trash"></i> Delete</a></li>
            <li><a href="#"><i class="icon-ban-circle"></i> Ban</a></li>
            <li class="divider"></li>
            <li><a href="#"><i class="i"></i> Make admin</a></li>
        </ul>
    </div>
    

    If enclosed within text, it can look like this (with text on the button changed, nothing else):

    Twitter Bootstrap dropdown button within text

    EDIT:

    If you are trying to achieve <input> with appended dropdown menu as in the dropdown buttons, then this is one of the solutions:

    1. Add a btn-group class to the element that has input-append class,
    2. Add elements with classes dropdown-toggle and dropdown-menu at the end of the element with class input-append,
    3. Override style for element matching .input-append .btn.dropdown-menu so it does not have float: left (otherwise it will get into next line).

    The resulting code may look like this:

    <div class="input-append btn-group">
        <input class="span2" id="appendedInputButton" size="16" type="text">
        <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
            <span class="caret"></span>
        </a>
        <ul class="dropdown-menu">
            <li><a href="#"><i class="icon-pencil"></i> Edit</a></li>
            <li><a href="#"><i class="icon-trash"></i> Delete</a></li>
            <li><a href="#"><i class="icon-ban-circle"></i> Ban</a></li>
            <li class="divider"></li>
            <li><a href="#"><i class="i"></i> Make admin</a></li>
        </ul>
    </div>
    

    with a little support from this style override:

    .input-append .btn.dropdown-toggle {
        float: none;
    }
    

    and give you the exact same result as this:

    enter image description here

    EDIT 2: Updated the CSS selector (was .dropdown-menu, is .dropdown-toggle).

    0 讨论(0)
  • 2020-12-13 00:19

    Search for the "datalist" tag.

    <input list="texto_pronto" name="input_normal">
    <datalist id="texto_pronto">
        <option value="texto A">
        <option value="texto B">
    </datalist>
    
    0 讨论(0)
  • 2020-12-13 00:27

    This is my solution is use display: inline

    Some text <div class="dropdown" style="display:inline">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropdown
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div> is here
    

    a

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" rel="stylesheet" />
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />Your text
    <div class="dropdown" style="display: inline">
      <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
        Dropdown
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
        <li><a href="#">Action</a>
        </li>
        <li><a href="#">Another action</a>
        </li>
        <li><a href="#">Something else here</a>
        </li>
        <li><a href="#">Separated link</a>
        </li>
      </ul>
    </div>is here

    0 讨论(0)
提交回复
热议问题