Html 使用 Bootstrap 在选择选项中添加搜索功能

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/36005249/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 13:00:51  来源:igfitidea点击:

Adding search functionality in select options using Bootstrap

htmltwitter-bootstrap

提问by ni8mr

I have been trying to add search functionality in the select form using bootstrap. This is my code -

我一直在尝试使用引导程序在选择表单中添加搜索功能。这是我的代码 -

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta name="description" content="">
  <meta name="author" content="">
  <link rel="icon" href="http://getbootstrap.com/favicon.ico">

  <title>Depots list</title>

  <!-- Bootstrap core CSS -->
  <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">

  <!-- Latest compiled and minified bootstrap-select CSS -->
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css">

  <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
  <link href="http://getbootstrap.com/assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">

  <!-- Custom styles for this template -->
  <link href="http://getbootstrap.com/examples/starter-template/starter-template.css" rel="stylesheet">
  <link href="./css/st.css" rel="stylesheet">

 <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
 <!--[if lt IE 9]><script src="http://getbootstrap.com/assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
 <script src="http://getbootstrap.com/assets/js/ie-emulation-modes-warning.js"></script>

 <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
 <!--[if lt IE 9]>
 <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
 <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
 <![endif]-->
 </head>



<body>

<div class="container">

  <div class="row">
    <div class="col-xs-12">
      <div class="box">
        <!-- /.box-header -->
        <div class="box-body">
                  <form>
                   <div class="form-group row">
                   <label for="" class="col-sm-2 form-control-label">Country</label>
                  <div class="col-sm-10">
                    <select class="form-control selectpicker" id="select-country" placeholder="" data-live-search="true">
                        <options>China</options>
                        <options>Malaysia</options>
                        <options>Singapore</options>
                    </select>
                  </div>
                </div>
              </form>
        </div><!-- /.box-body -->
      </div><!-- /.box -->
    </div><!-- /.col -->
  </div><!-- /.row -->
</div><!-- /.container -->

I have problem with contradiction between form-controland selectpickerclasses in select form. My code works only for form-controlclass.

我在选择表单中的表单控件和选择选择类之间存在矛盾。我的代码仅适用于表单控件类。

For selection searches i have used this - http://silviomoreto.github.io/bootstrap-select/examples/#key-words

对于选择搜索,我使用了这个 - http://silviomoreto.github.io/bootstrap-select/examples/#key-words

My question is - how can i use both of the form-controland selectpickerclasses in select tag ? I have used normal procedure to write the class name with a space. But it seems not to work.

我的问题是 - 如何在 select 标签中同时使用form-controlselectpicker类?我已经使用正常程序用空格来写类名。但它似乎不起作用。

回答by Rajshekar Reddy

To get a search functionality you must set the data-tokensattribute for each options. Here is your code after adding it. Let me know if you need additional help.

要获得搜索功能,您必须data-tokens为每个选项设置属性。这是添加后的代码。如果您需要其他帮助,请告诉我。

$(function() {
  $('.selectpicker').selectpicker();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css" rel="stylesheet" />




<div class="container">

  <div class="row">
    <div class="col-xs-12">
      <div class="box">
        <!-- /.box-header -->
        <div class="box-body">
          <form>
            <div class="form-group row">
              <label for="" class="col-sm-2 form-control-label">Country</label>
              <div class="col-sm-10">
                <select class="form-control selectpicker" id="select-country" data-live-search="true">
                <option data-tokens="china">China</option>
  <option data-tokens="malayasia">Malayasia</option>
  <option data-tokens="singapore">Singapore</option>
                </select>

              </div>
            </div>
          </form>
        </div>
        <!-- /.box-body -->
      </div>
      <!-- /.box -->
    </div>
    <!-- /.col -->
  </div>
  <!-- /.row -->
</div>
<!-- /.container -->

回答by asghar

    <link href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/css/bootstrap-select.min.css" />

<select class="selectpicker" data-show-subtext="true" data-live-search="true">
<option data-tokens="name">name</option>
<option data-tokens="family">family</option>
</select>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.3/js/bootstrap-select.min.js"></script>

回答by Ajit Kumar

Multi Selection Form and searchable

多选表格和可搜索

$(function() {
 $('.selectpicker').selectpicker();
});
<!DOCTYPE html>
<html>
<head>
 <title></title>
 <script type="text/javascript" src="js/script.js"></script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
 <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css" rel="stylesheet" />
 <script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js"type="text/javascript"></script>
 <link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css"rel="stylesheet" type="text/css" />
 <script>
  $(function () {
   $('#lstFruits').multiselect({
    includeSelectAllOption: true
   });
   $('#btnSelected').click(function () {
    var selected = $("#lstFruits option:selected");
    var message = "";
    selected.each(function () {
     message += $(this).text() + " " + $(this).val() + "\n";
    });
   });
  });
 </script>
</head>
<body>
<div class="container">
 <div class="row">
  <div class="col-xs-12">
   <div class="box">
    <div class="box-body">
     <form action="#" method="POST">
      <div class="form-group row">
       <div class="col-sm-10">
        <select class="form-control selectpicker" id="select-country lstFruits" multiple="multiple" data-live-search="true">
         <option data-tokens="china">China</option>
         <option data-tokens="malayasia">Malayasia</option>
         <option data-tokens="singapore">Singapore</option>
        </select>
       </div>
      </div>
     </form>
    </div>
   </div>
  </div>
 </div>
</div>
</body>
</html>