当前位置:  开发笔记 > 编程语言 > 正文

如何在HTML中创建可编辑的下拉列表?

如何解决《如何在HTML中创建可编辑的下拉列表?》经验,为你挑选了5个好方法。

我想创建一个带有下拉列表的文本字段,该列表允许用户选择一些预定义的值.用户还应该能够键入新值或从下拉列表中选择预定义值.我知道我可以使用两个小部件但是在我的应用程序中,如果它在一个小部件中统一,那将更符合人体工程学.

是否有标准小部件或我必须使用第三方JavaScript?

浏览器的可移植性怎么样?



1> 小智..:

您可以使用HTML5中的标记来完成此操作.



    
    
    

如果双击浏览器中的输入文本,将显示带有已定义选项的列表.


[所有浏览器尚不支持] datalist标记(http://caniuse.com/datalist)
@JamesNewton但这仍然是做IMO的正确方法.您可以使用[**some plugin**](https://miketaylr.com/code/datalist.html),这样您的实现将是跨浏览器和未来证明:)
会不会得到支持?这个答案来自2013年; 5年后的2018年,只有两款浏览器(Chrome for Android和三星互联网)完全支持它([来源](https://caniuse.com/#feat=datalist)).

2> 小智..:

这可以通过纯HTML,CSS和JQuery来实现.我创建了一个示例页面:

$(document).ready(function(){
   
    $(".editableBox").change(function(){         
        $(".timeTextBox").val($(".editableBox option:selected").html());
    });
});
.editableBox {
    width: 75px;
    height: 30px;
}

.timeTextBox {
    width: 54px;
    margin-left: -78px;
    height: 25px;
    border: none;
}



3> Dan Monego..:

最好的方法是使用第三方库.

在jQuery UI和dojo中有一个你正在寻找的实现.jQuery更受欢迎,但是dojo允许您以声明方式定义HTML中的小部件,这听起来更像您正在寻找的内容.

您使用哪一个取决于您的风格,但两者都是为跨浏览器工作而开发的,并且两者都会比复制和粘贴代码更频繁地更新.



4> Treb..:

).添加一些JavaScript以仅在选择"其他"时启用编辑字段.

有可能以某种方式创建一个允许直接编辑的下拉列表,但IMO不值得付出努力.如果是这样,亚马逊,谷歌或微软都会这样做;-)只需用最简单的解决方案完成工作.它更快(你的老板可能会喜欢)并且通常更容易维护(你可能会喜欢).



5> 小智..:

基于CSS和一行JS代码的非常简单的实现(仅基本功能)


请注意:它使用旧版浏览器不支持的previousElementSibling (IE9以下)

.dropdown {
    position: relative;
    width: 200px;
}
.dropdown select
{
    width: 100%;
}
.dropdown > * {
    box-sizing: border-box;
    height: 1.5em;
}
.dropdown select {
}
.dropdown input {
    position: absolute;
    width: calc(100% - 20px);
}

这是 JSFiddle


您应该在答案中包含代码,这样我们就不必去另一个可能会消失的网站.
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有