Я просто искал проблему с помощью моей библиотеки, но это сводится к тому, чтобы быть чем-то связанным с поведением Opera. Теперь я не нашел больших предупреждений нигде в этом вопросе, поэтому я предполагаю, что у меня что-то не хватает или что есть обходной путь, о котором я просто не знаю.Любое обходное начало типа входа в Opera 12 = поведение действительности числа?
В частности, возьмем простой код, как это:
<input type="number" id="myNumber" />
В Opera 12.16, тип входа = число поддерживается, так что будет правильно отображать входной тип = число.
Если пользователь вводит действительное значение, скажем, "123", а затем:
Теперь, если пользователь вводит "123", затем:
var myInput = document.getElementById('myNumber');
myInput.value // => ""
myInput.validity // => { valid: true, typeMismatch: false, ... } -- why valid: true?
myInput.validity.badInput // undefined
Кроме того: myInput.willValidate
возвращает true
и myInput.checkValidity()
возвращает true
.
Итак, как я могу проверить плохой вход в input type = number в этой версии Opera? (Рассмотрим пустую строку и должен быть действительный ввод.)
Firefox, похоже, ведет себя примерно так же, нет? – Pointy
@Pointy Вы имеете в виду определенную версию Firefox? Я просто попробовал с 32.0, и пока он делает то же самое, Firefox _does_ устанавливает 'myInput.validity.badInput' в' true', что достаточно для обнаружения проблемы, оно также устанавливает 'valid' в' false'. – Alpha
"зачем справедливо: правда?" см. http://stackoverflow.com/a/18853513/248058 – Knu