Re: フォーム・サブミット時のinput要素の入力チェック方法と結果表示について

Googleたむらです。

フォーム検証については、「基本的な機能は簡単に実現できるように」「不満が
あればAPIを使ってコードを書けばよい」という方針で規格化しているようです。

Operaのフォーム実装はHTML5の規格が今のようになるずっと前から存在していて
最近は動作の変更はしていないように見えます。
現状の規格がそのまま正しく実装されれば、一條さまの懸念は解消するのではない
かと思います。


> 1. 入力チェックが実行される単位は要素単位のみ? form単位でも可能か?

規格では、「UAは、少なくとも1つのinvalidコントロールについて、invalidである 
こ
とをユーザにレポートする」という感じになっています。複数のコントロールにつ
いてレポートする実装ももちろんOKです。Operaは1つしかレポートしないようです 
が、
それでも規格には適合しています。

もし複数のエラーメッセージを表示したいなら、スクリプトでコードを書いて自力で
表示すれば可能です。

個人的には、複数のエラーを一斉に出されるのも鬱陶しそうだと思います。
CSSの :invalid を使えばどこにエラーがあるのかはわかるはずなので、エラー
メッセージ自体は1つだけ表示でもOKではないかと。


> 2. 要素単位の入力チェックが行なわれる場合、実行は要素の構造上の並び順に従 
> うのか?

DOMの順番でチェックされることが規格で名言されています。


> 3. 入力チェックでエラーとなった時の表示スタイルのカスタマイズはできるよう
> になるのだろうか?

現状の規格にはそういった手段は用意されていません。
UAによる表示方法が気に入らなければ、スクリプトでコードを書いて自力で表示すれ
ば良いのです。


> 4. エラーメッセージ全体を自由にカスタマイズできる方法が必要にならないだろ 
> うか?

setCustomValidity() で上書きされるのが規格の意図だと思います。

> ■ Javascriptのメソッドでカスタムメッセージをセットもやってみましたが、固 
> 定の
> エラーメッセージがどうしても付加されます。

これはOperaのバグなのではないかと思います。

-- 
TAMURA Kent
Software Engineer, Google

Received on Sunday, 9 May 2010 20:07:51 UTC