<input type = "number" > не работает в IE10

Хотя я уверен, что это работало вчера или накануне, <input type="number" min="0" max="50" step="10" value="0" />, например, больше не работает в IE10. Я протестировал мой браузер с http://ie.microsoft.com/testdrive/HTML5/Forms/Default.html, и он больше не работает. Кто-нибудь еще с этим вопросом? Или это никогда не срабатывало?

Ответ 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 нет числового счетчика.

Ответ 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, символ не печатается.

Вам придется настроить его, если вы хотите включить отрицательные числа, которые могут заставить Сильвио ответить больше по вашему переулку.