将输入放在select中

时间:2016-03-05 04:32:39

标签: html css

有没有办法在选择中放置INPUT字段?

<select name="menu_files" class="form-control" >
    <option value="new_menu"> <input type="text"></option>
</select>

4 个答案:

答案 0 :(得分:1)

无法在选择内部放置INPUT字段。您可以使用jquery创建自己的自定义插件。 请尝试以下代码:

HTML ::

About to do something dumb.
Caught something dumb.
Skipping finally...

CSS ::

 <ul class="nav" role="navigation">
 <li class="dropdown"> <a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">--Select Country--<b class="caret"></b></a>

    <ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">USA</a>

        </li>
        <li role="presentation" class="divider"></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">UK</a>

        </li>
        <li role="presentation" class="divider"></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Russia</a>

        </li>
        <li role="presentation" class="divider"></li>
        <li role="presentation"><a role="menuitem" tabindex="-1" href="#">Others <input type="text" id="other"/></a>

        </li>
    </ul>
</li>
</ul>

Jquery的::

.nav {
   margin-left: 0;
   margin-bottom: 20px;
   list-style: none;
  }

ul, ol {
   padding: 0;
   margin: 0 0 10px 25px;
 }

.dropup, .dropdown {
    position: relative;
 }

.open>.dropdown-menu {
 display: block;
 }

.nav>li>a {
 display: block;
 }

.dropdown-menu {
 position: absolute;
 top: 100%;
 left: 0;
 z-index: 1000;
 display: none;
 float: left;
 min-width: 160px;
 padding: 5px 0;
 margin: 2px 0 0;
 list-style: none;
 background-color: #ffffff;
 border: 1px solid #ccc;
 border: 1px solid rgba(0, 0, 0, 0.2);
 -webkit-border-radius: 6px;
 -moz-border-radius: 6px;
  border-radius: 6px;
 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
 -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
 -webkit-background-clip: padding-box;
 -moz-background-clip: padding;
  background-clip: padding-box;
  }

 .dropdown-menu .divider {
  height: 1px;
  margin: 9px 1px;
  overflow: hidden;
  background-color: #e5e5e5;
  border-bottom: 1px solid #ffffff;
  }

 .dropdown-menu>li>a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 20px;
  color: #333333;
  white-space: nowrap;
 }

Jsfiddle

答案 1 :(得分:1)

<datalist>元素

datalist元素旨在为该概念提供更好的机制。

<input type="text" name="example" list="exampleList">
<datalist id="exampleList">
  <option value="A">  
  <option value="B">
</datalist>

有关更多信息,请参见

答案 2 :(得分:0)

您可以这样做:

链接到:JsFiddle

<强> HTML

<input type="text" name='text'>
<br>
<br>
<select name="menu_files" class="form-control" >
    <option id='text1'> Text 1</option>
    <option id="text2"> Text 2</option>
</select>

<p></p>

<强> JS:

$(document).ready(function(){

  $( "input" ).keyup(function() {
    var value = $( this ).val();
    $( "p" ).text( value );
    $('#text1').text(value);
  })
  .keyup();
})

答案 3 :(得分:0)

我们可以实现将输入标签放置在选择标签“旁边”而不是“放置”在选择标签内,但是将它们强制放入表td之类的有限且固定的区域中。

function selection(){
	var selected=document.getElementById("select1").value;
  if(selected==0){
  	document.getElementById("input1").removeAttribute("hidden");
  }else{
  	//elsewhere actions
  }
}
td{
  width: 170px;
  max-width: 170px;
  overflow: hidden;
  white-space: nowrap;
}

input{
  width: 164px;
}
<table>
  <tr>
      <td>
        <input id="input1" hidden="hidden" placeholder="input data">
        <select onchange="selection()" id="select1">
          <option value="-1"></option>
          <option value="0">-make your own choice-</option>
          <option value="1">choice 1</option>
          <option value="2">choice 2</option>
        </select>
      </td>
  </tr>
</table>

jsfiddle