をサポートしていない古いブラウザー用の shim を作成したいと考えています<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">
それらをサポートしていないブラウザーで検出するにはどうすればよいですか?