表单 – HTML5输入类型的范围和颜色不能为空.如果它们镜像的数据库列为空,该怎么办?

相对较新的 HTML表单控件包括’type = range’和’type = color’控件.该规范指出,当提交包含此类控件的表单时,将始终为这些控件提交值.他们永远不会是空的.

这与type = text控件和其他类似控件不同,其值实际上可以是空字符串.

似乎不可能使用范围和颜色控件来反映数据库中可为空的列的状态.

这有什么解决方法吗?

编辑:此链接指定行为:HTML5 Specification

解决方法

对于范围,您可以将范围的值设置为超出范围的数字(当然,如果您希望用户不要弄乱它):
var range = document.getElementById('rangeInput');
 //let's say your range is 0-10

 rangeInput.style.display = 'none';

 range.min = -1;

 range.value = -1;
 //-1 would be your "null" value

 //Now,if you wanted the user to be able to edit the null range...

 range.style.display = '';

 range.addEventListener('change',function(){
     if(this.value < 0) this.value = 0;
     //this should keep people from setting it to "null"
 });

我仍然不确定你将如何为颜色输入做这件事,因为它没有“超出范围”.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些