虽然我很确定这是昨天或前一天的工作<input type="number" min="0" max="50" step="10" value="0" />
,例如,在 IE10 中不再工作。我已经用http://ie.microsoft.com/testdrive/HTML5/Forms/Default.html测试了我的浏览器,但它不再工作了。还有谁有相同的问题吗?或者,它从来没有工作过?
6 回答
Internet Explorer 10 支持数字输入。从他们的文档的粗略检查以及在浏览器本身中使用它的尝试中可以明显看出这一点。例如,尝试在数字输入中放置一个字母将导致在控件失去焦点时清除该值。
您还可以通过以编程方式执行上述测试来检测对数字的支持:
// Create the element
var element = document.createElement( "input" );
// Give it the number property and invalid contents
element.type = "number";
element.value = "qwerty";
// Value should be empty
alert( element.value ? "Not Supported" : "Supported" );
运行这个测试:http: //jsfiddle.net/VAZwT/
很可能您将逐步增强的 UI(微调器)等同于对控件本身的支持。我已经看到这让一些人感到困惑。一些浏览器通过额外的控件来补充数字输入,但这不是(据我所知)支持的要求。
min
对、max
和step
jsfiddle的一些简单测试:http: //jsfiddle.net/sDVK4/show/
请选择以下答案,Sampson
因为它更合适
IE 不支持 input type="number" 但您可以使用 polyfill 使其工作。
这是解决方案: http: //html5please.com/#number
IE10 不支持数字。资料来源:我可以使用...吗?
刚刚在我们的 Windows 8 测试机上进行了验证,在他们的 IE10 测试驱动站点上没有数字微调器。
Microsoft 仍然存在输入类型=数字的验证错误/错误,这也在 IE11 中。
就像我又开始喜欢 Internet Explorer 一样……希望他们能在 IE12 中解决这个问题,祈祷
这是我开发的解决方案,我认为效果很好,希望对某人有所帮助
function handleKeyPress(e) {
let newValue = e.target.value + e.key;
if (
// It is not a number nor a control key?
isNaN(newValue) &&
e.which != 8 && // backspace
e.which != 17 && // ctrl
newValue[0] != '-' || // minus
// It is not a negative value?
newValue[0] == '-' &&
isNaN(newValue.slice(1)))
e.preventDefault(); // Then don't write it!
}
Insert a number:
<input onKeyPress="handleKeyPress(event)"/>
IE 不支持 input type="number" 但您可以使用 jQueryUI Spinner 小部件。它使用起来非常简单,并且有许多对开发人员友好的 API。
jQuery-UI Spinner 演示: https ://jqueryui.com/spinner/
jQuery-UI Spinner API https://api.jqueryui.com/spinner/#event-change