私は自分のライブラリの問題をトラブルシューティングしていましたが、それは Opera の動作に関連するものに要約されます。現在、この問題に関する大きな警告はどこにも見つかりませんでした。そのため、何かが欠けているか、私が知らない回避策があると推測しています。
具体的には、次のような単純なコードを使用します。
<input type="number" id="myNumber" />
Opera 12.16 では、input type=number がサポートされているため、type=number 入力が正しく表示されます。
ユーザーが「123」などの有効な値を入力すると、次のようになります。
var myInput = document.getElementById('myNumber');
myInput.value // => "123"
myInput.validity // => { valid: true, typeMismatch: false, ... }
myInput.validity.badInput // undefined
ここで、ユーザーが「123a」と入力すると、次のようになります。
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
も。
では、このバージョンの Opera で input type=number の不正な入力を実際に確認するにはどうすればよいでしょうか? (空の文字列は有効な入力であると考えてください。)