Я пытаюсь использовать «диапазон» типа ввода HTML5. Это не поддерживается в IE8 и IE9 и заменяется вводом с типом «текст». Чтобы это поле работало для всех, я использую полифилл для ввода с типом «диапазон». Полифил, который я использую: Rangeslider.js (http://andreruffert.github.io/rangeslider.js/)
HTML моего поля ввода выглядит так:
<input type="range" id="somefield" name="somefield" required="required" min="0" max="100" step="1" class="className" value="10">
JavaScript, который запускает полифилл, вызывается на input[type="range"]. Пример:
$('input[type="range"]').rangeslider();
Почему-то полифил работает корректно только в том случае, если вызывать его именно на элемент ввода, а не на элемент с определенным классом. Поэтому вызов, как показано ниже, не будет работать (он будет отображаться, но значение диапазона не сохраняется в элементе ввода):
$('.className').rangeslider();
Однако IE заменяет ввод в DOM следующим HTML:
<input name="somefield" class="className" id="somefield" required="required" type="text" min="0" max="100" step="1" value="10">
Поскольку элемент ввода теперь имеет другой тип ввода, селектор $('input[type="range"]') не будет работать. использование класса или идентификатора в качестве селектора также не работает (в этом случае полифилл не обновляет значение исходного элемента)
В других браузерах (Firefox, Chrome) полифилл, кажется, работает (когда я позволяю ему переопределять встроенную поддержку).
Вопрос: как использовать этот полифилл (с каким селектором элементов) в IE9?