Хотя я уверен, что это работало вчера или накануне, <input type="number" min="0" max="50" step="10" value="0" />
, например, больше не работает в IE10. Я протестировал мой браузер с http://ie.microsoft.com/testdrive/HTML5/Forms/Default.html, и он больше не работает. Кто-нибудь еще с этим вопросом? Или это никогда не срабатывало?
<input type = "number" > не работает в IE10
Ответ 1
Пожалуйста, предпочтите ответ ниже от Sampson
как он более уместен
В IE нет поддержки ввода type = "number", но вы можете использовать polyfill, чтобы заставить его работать.
Вот решение: http://html5please.com/#number
Ответ 2
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/
Вполне возможно, что вы приравниваете прогрессивно расширенный пользовательский интерфейс (прядильщики) с поддержкой самого элемента управления. Я уже видел, что это несколько путало людей. Некоторые браузеры дополняют дополнение ввода дополнительными элементами управления, но это не является (насколько мне известно) требованием для поддержки.
Несколько простых тестов для min
, max
и step
на jsfiddle: http://jsfiddle.net/sDVK4/show/
Ответ 3
IE10 не поддерживает число. Источник: Могу ли я использовать... еще?
Только что подтвержденный на нашем тестовом компьютере Windows 8, на сайте тестового диска в IE10 нет числового счетчика.
Ответ 4
У Microsoft есть ошибки/ошибки проверки с типом ввода = число, это также в IE11.
Так же, как мне снова начинал нравиться Internet Explorer... Надеюсь, они исправят это в IE12, скрестив пальцы
Ответ 5
Вот решение, которое я разработал, оно работает довольно хорошо, я думаю, надеюсь, оно кому-нибудь поможет 😁
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)"/>
Ответ 6
Если вы хотите, чтобы очень простой код позволял вводить только цифры:
$(".numbers_only").on('keypress' function(e) {
var key_pressed = String.fromCharCode(e.which);
if (!key_pressed.match(/[0-9\.]/)) {
e.preventDefault();
}
});
Он преобразует нажатую клавишу в строку и, если она не совпадает с числом от 1 до 9, символ не печатается.
Вам придется настроить его, если вы хотите включить отрицательные числа, которые могут заставить Сильвио ответить больше по вашему переулку.