2

代わりにオートコンプリートフィールドを使用するためにjQueryで非表示にする入力「テキスト」フィールドを持つSymfony2フォームがあります(入力フィールドのcssは「display:none」に設定されています)。フィールドが必須であるため、選択せずにフォームを送信しようとすると、期待どおりに検証エラーメッセージが表示されます。ただし、私が遭遇している問題は、HTML5クライアント側の検証エラーが、オートコンプリートフィールドが配置されている場所ではなく、ブラウザーのウィンドウの外側(左下隅に接続されている)に表示(バブルアップ)することです。これは、エラーバブルの位置を設定する入力フィールドが非表示になっているために発生します。

エラーバブル(HTML5フォーム検証から)を別の要素に添付して、正しい位置に表示されるようにする簡単な方法はありますか?おそらく、ウィジェットではなく入力フィールドのラベルに添付しますか?または、jQueryプラグインで作成された「ul」要素に?少しコンテキストを与えるために、私はLoopj Tokeninput jQueryプラグインを使用しています。これは、フォームの入力「text」フィールドの代わりに「ul」要素を作成します(後者のスタイルを「display:none」に設定します)。

4

1 に答える 1

0

これは Symfony 関連ではなく、HTML5 クライアント側の検証に関連しています。

フォームに novalidate 属性を指定して、フォーム全体のクライアント側の検証をオフにし、独自の検証エラーをロールすることができます。

<form method="post" action="/foo" novalidate></form>

他のオプションについては、この質問を参照してください: HTML5 フォーム要素の検証を無効にする

于 2012-08-21T13:51:57.350 に答える