HTML5颜色数据列表默认

问题描述

我正在寻找一种使用带有数据列表的html5颜色时添加“透明”或“ _none”选项的方法

我知道它只接受十六进制值,但作为示例-我只需要一种认为空的方法,否则在提交表单时必须将其设置为value。

<input type="color" list="colors" name="bgColor">
<datalist id="colors">
   <option value=" [ _none or transparent etc ] ">
   <option value="#FF0000">
   <option value="#FFFFFF">
   <option value="#0000FF">
</datalist>

解决方法

我意识到手册中说“只接受十六进制值”,但是缺少取消设置未设置颜色的能力吗?离开标准html5标签似乎是一个愚蠢的障碍。

function func(val) {

  var bg = document.getElementById('bgColor');
  var sel = document.getElementById('bgColorSelector');

  sel.classList.remove("none");

  bg.value = val;
  if (bg.value == '_none') {
    sel.classList.add("none");
  }

  if (val == "_none") {
    sel.value = '_none';
  }

}


func('_none');
#bgColorSelector.none::before {
  content: " ";
  position: absolute;
  border: 1px solid;
  width: 55px;
  height: 13px;
  margin: 4px 4px 4px 7px;
  background-image: linear-gradient(to bottom right,#FFF 46%,red 50%,#FFF 53%);
}
<h3>Hidden value</h3>
<input id="bgColor" name="bgColor" type="text" value="_none" />

<h3>Selector with clear button</h3>

<input id="bgColorSelector" type="color" list="colors" onchange="func(this.value);" value="_none">
<datalist id="colors">
  <option value="#FFFFFF">
  <option value="#FF0000">
  <option value="#00FF00">
  <option value="#0000FF">
</datalist>

<input name="button" type="button" onclick="func('_none')" value="Clear" />

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...