相对较新的
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" });
我仍然不确定你将如何为颜色输入做这件事,因为它没有“超出范围”.