私のフォームでは、たとえば新しいHTML5フォームタイプを使用したいと思います<input type="url" />
(タイプの詳細はこちら)。
問題は、Chromeが非常に役に立って、私にとってこれらの要素を検証したいということです。組み込みの検証に失敗した場合、要素がフォーカスを取得する以外にメッセージや指示はありません。私はURL要素にを事前に入力している"http://"
ため、独自のカスタム検証ではこれらの値を空の文字列として扱うだけですが、Chromeでは拒否されます。検証ルールを変更できれば、それも機能します。
私は使用に戻すことができることはわかってtype="text"
いますが、これらの新しいタイプのオファーを使用して素晴らしい拡張が必要です(例:モバイルデバイスのカスタムキーボードレイアウトに自動的に切り替わります):
それで、自動検証をオフにするか、カスタマイズする方法はありますか?
$('[inputmode]').each(function () { this.attr({type: this.attr('inputmode'), novalidate: true}) });
inputmode
。あなたのやり方でやっていても、(たとえば)ユーザーがtypeの入力ボックスに入力した数値以外の値を読み取ることはできませんnumber
。たとえば、このフィドルのテキストボックスに数値以外の何かを入力して、ボタンをクリックしてみてください。
<input type='number'>
数値以外の値をまったく受け入れないためですか?
inputmode
属性私が正しく読んだものを理解していた場合- - 、ときそれらが相互作用場でキーボードタイプは、利用者に提供すべきかを指定するために使用することができなくても、任意の検証ルールを暗示しています。将来のある時点で、inputmode
属性の代わりに属性を使用することは、type
おそらくこの問題の正しい解決策になりますが、まだではありません。