Я хочу написать прокладку для старых браузеров, которые не поддерживают <input type="number">
.Найти все <input type = "number"> на странице в браузере, который их не поддерживает
Это легко обнаружить, как в тех браузерах, любой input
где вы установите type
в number
сообщит о type
в text
. Так хорошо до сих пор.
Так что я хочу найти каждый <input type="number">
и подключить события для этих старых браузеров.
Проблема в следующем: как их найти?
$('input[type=number]').length === 0
(конечно).$('input[name=aKnownNumberField]')[0].type === 'text'
еще раз, не удивительно, поскольку это проверка, используемая для обнаружения функции в первую очередь.$($('input[name=aKnownNumberField]')[0]).parent().html().indexOf('type="number"')
(или любая аналогичная проверка HTML) также терпит неудачу, потому что возвращенный HTML будет соответствовать данным DOM браузера.
Обратите внимание, что я использую jQuery в своих примерах, но я рад за ответы, отличные от jQuery.
Как определить <input type="number">
в браузерах, которые их не поддерживают?
'document.querySelectorAll ("вход [тип = 'число']")' ' – Cherniv
@Cherniv querySelectorAll' не поддерживается очень браузеры Кит пытается цели. – MrCode
Не могли бы вы добавить дополнительный атрибут для элементов ... например 'data-input-type =" number "'? Затем вы можете получить их с помощью '$ ('input [data-input-type =" number "]')' – Ian