在相对较新的 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"
});
我仍然不确定您将如何为颜色输入执行此操作,因为它没有“越界”。