如何在没有html选择的情况下制作下拉列表 [英] How make to make dropdown without html select

查看:89
本文介绍了如何在没有html选择的情况下制作下拉列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用以下html制作下拉菜单:

 < div class =container> 
< select id =search-paxname =paxclass =ls-select>
< p>开始选择< / p>
< option value =1> 1 gas< span> 1700< / span>< / option>
< option value =2> 2 gaste< / option>
< option value =3> 3 gaste< / option>
< option value =4> 4 gaste< / option>
< option value =5> 5 gaste< / option>
< option value =6> 6 gaste< / option>
< option value =7> 7 gaste< / option>
< option value =8> 8 gaste< / option>
< option value =9> 9 gaste< / option>

< option value =10> 10 gaste< / option>
< option value =11> 11 gaste< / option>
< option value =12> 12 gaste< / option>
< option value =13> 13 gaste< / option>
< option value =14> 14 gaste< / option>
< option value =15> 15 gaste< / option>
< option value =16> 16 gaste< / option>
< option value =17> 17 gaste< / option>
< option value =18> 18 gaste< / option>
< option value =19> 19 gaste< / option>
< option value =20> 20 gaste< / option>
< / select>
< / div>

所以,你可以看到

解决方案

USE < ul> < li>



您好,



如果您想添加任何 HTML 项目列表中的标签。最好的方法是使用< ul> < li> 并结合 css 和一些 Jquery 技巧显示为Dropdown



尝试下面的示例代码



  $(ul)。on(click,。init,function( ){$(this).closest(ul)。children('li:not(.init)')。toggle();}); var allOptions = $(ul)。children('li:not (.init)'); $(ul)。on(click,li:not(.init),function(){allOptions.removeClass('selected'); $(this).addClass( 'selected'); $(ul)。children('。init')。html($(this).html()); allOptions.toggle();}); //检查此单击evnet  -  $( body)。on(click,#ddlDemoDropdown li,function(){var selectedValue = $(this).attr('data-value')alert(selectedValue)});  

  body {padding:30px;} ul {height:30px;宽度:150px; border:1px#000 solid;} ul li {padding:5px 10px; z-index:2; } ul li:not(.init){float:left;宽度:130px; display:none;背景:#ddd; } ul li:not(.init):hover,ul li.selected:not(.init){background:#09f; } li.init {cursor:pointer; #submit #z-index:1; }  

 < script src =https:// ajax .googleapis.com / ajax / libs / jquery / 1.11.1 / jquery.min.js>< / script>< ul id ='ddlDemoDropdown'class =list-unstyledstyle =list-style:无;> < li class =initdata-value = -  1>  -  SELECT  - < / li> < li data-value =value 1>选项1< / li> < li data-value =value 2>在这里,您可以添加任何HTML标签,例如< input style ='width:30px;'type ='text'/>文本框...;)< / li> < li data-value =value 3>选项3< / li>< / ul>  



编辑: -



检查下方点击事件我也更新了我的片段..你现在可以检查

  $(body)。on(click ,#ddlDemoDropdown li,function(){
var selectedValue = $(this).attr('data-value')
alert(selectedValue)
});


I used the following html to make a dropdown:

<div class="container">
<select id="search-pax" name="pax" class="ls-select ">
  <p>Start the selection</p>
  <option value="1">1 gas <span>1700</span></option>
  <option value="2">2 gaste</option>                    
  <option value="3">3 gaste</option>                    
  <option value="4">4 gaste</option>                    
  <option value="5">5 gaste</option>                    
  <option value="6">6 gaste</option>                    
  <option value="7">7 gaste</option>                    
  <option value="8">8 gaste</option>                    
  <option value="9">9 gaste</option>

  <option value="10">10 gaste</option>              
  <option value="11">11 gaste</option>              
  <option value="12">12 gaste</option>              
  <option value="13">13 gaste</option>              
  <option value="14">14 gaste</option>              
  <option value="15">15 gaste</option>              
  <option value="16">16 gaste</option>              
  <option value="17">17 gaste</option>              
  <option value="18">18 gaste</option>              
  <option value="19">19 gaste</option>              
  <option value="20">20 gaste</option>              
  </select> 
</div>

So, as you can see here in the html and the running snippet, I tried to add paragraph tag inside the select tag, tried styling the option and nothing works.

The objective is to achieve something like the photo, where I select an item,the item would go to the input field.

Hope you can help.

解决方案

USE <ul> <li>

Hi,

If you want add any HTML tags inside your item list. Best way is use <ul> <li> with combination of css and some Jquery tricks to display as Dropdown

Try below sample code

$("ul").on("click", ".init", function() {
    $(this).closest("ul").children('li:not(.init)').toggle();
});

var allOptions = $("ul").children('li:not(.init)');
$("ul").on("click", "li:not(.init)", function() {
    allOptions.removeClass('selected');
    $(this).addClass('selected');
    $("ul").children('.init').html($(this).html());
    allOptions.toggle();
});
// Check this click evnet - 
$("body").on("click", "#ddlDemoDropdown li", function() {
    var selectedValue = $(this).attr('data-value')
    alert(selectedValue)
});

body{
  padding:30px;
}
ul { 
    height: 30px;
    width: 150px;
    border: 1px #000 solid;
}
ul li { padding: 5px 10px; z-index: 2; }
ul li:not(.init) { float: left; width: 130px; display: none; background: #ddd; }
ul li:not(.init):hover, ul li.selected:not(.init) { background: #09f; }
li.init { cursor: pointer; }

a#submit { z-index: 1; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id='ddlDemoDropdown' class="list-unstyled" style="list-style: none;">
    <li class="init" data-value="-1">--SELECT--</li>
    
    <li data-value="value 1">Option 1</li>
    <li data-value="value 2">Here you can add any HTML tags like <input style='width:30px;' type='text' /> Textbox ... ;) </li>
    <li data-value="value 3">Option 3</li>
</ul>

EDIT:-

Check below click event and I also updated my snippet .. you can check now

$("body").on("click", "#ddlDemoDropdown li", function() {
        var selectedValue = $(this).attr('data-value')
        alert(selectedValue)
    });

这篇关于如何在没有html选择的情况下制作下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆