をサポートしていない古いブラウザー用の shim を作成したいと考えています<input type="number">。
これらのブラウザではinput、 を に設定するtypeと、 がとしてnumber報告されるため、これは簡単に検出できます。これまでのところとても良い。typetext
そこで私がやりたいことは、すべてを見つけて<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">それらをサポートしていないブラウザーで検出するにはどうすればよいですか?