私たちが構築しているWebアプリケーションでは、Internet Explorerでのみ発生する奇妙なバグを発見しました。フォーム検証でのInternet Explorerのngパターンと入力タイプ "number"
このplunkerの入力検証は、IEを除くすべてのブラウザで正常に動作します(IE10 +をサポートする必要があります)。ほとんどのブラウザでは、ユーザーが許可された文字だけを入力できるようにするため、数字を必要とする入力ではtype="number"
を使用します。 ng-pattern="/^\d+$/"
を使用して、許可される型の型に対してさらに検証を加えます。また、入力型がサポートされていないため、IEで唯一の検証が行われます。
問題は、入力確認が入力の最初の文字(たとえば「abb45」)として文字を入力する場合を除いて、入力の検証がほぼ正常に機能することです。それは無効な入力だとは思わない!別のSOスレッドでは、入力にrequired
を入れると適切に検証が行われることがわかりましたが、私たちの場合、この特定のフィールドは必須ではありません。さらに、フィールドが無効とマークされていても、検証メッセージは表示されません(この場合、検証エラーがどこから来るかわかりません)。
type="number"
を削除することは回避策です(これはIEの問題を解決します)。しかし、この変更を行う前に、他のブラウザの数値入力の「滑らかさ」を損なう可能性がある別の解決策を見つけようとします。
注:jQueryは使用していません(jQuery liteでは角があるので、それは依存性があります)。
よしに
number-only
属性を追加し、私はそれを試してみると、それは私の問題を解決した場合、あなたが知っているだろう、ありがとう! – Chatonne