Drupalで検証に失敗するフォーム要素の赤い輪郭を削除します
-
02-10-2019 - |
質問
Drupalフォームが検証に失敗すると、赤い境界に囲まれた検証に失敗した要素で再描画されます。 Drupalはこれを追加して行います error
入力要素へのクラス、および入力に2pxの赤い境界線を指定します。エラー要素 system.css
.
このスタイルシートを変更せずに、サイトの残りの部分でデフォルトの動作を使用しながら、特定のフォームのみで赤い境界を削除するにはどうすればよいですか?
ソリューションにはカスタムを使用する必要があると思います theme_form_element
, 、しかし、単一のフォームのみをカスタマイズする方法を理解することはできません。
このjQueryトリック(機能します)に頼らずにこれを行いたいと思います。
$("#edit-name").removeClass('error');
解決
フォームアイテムからエラークラスを削除する必要があります。これは、テーマ機能を上書きすることで実行できます。 theme_textfield
, theme_textarea
...(各タイプに1つあります)
を見てみましょう $element['#attributes']['class']
エラークラスが含まれています。
編集
特定のフォーム要素またはフォームに対してそれを行うには、 #theme
テーマ関数を変更する属性またはフォームまたは要素のいずれか。
他のヒント
最も簡単な方法は、Drupalが発見しているマークアップを変更しようとするのではなく、関連するスタイルを変更することです。 error
クラス。
System.cssを変更せずにそれを行うことができます。テーマに新しいスタイルシートを追加するだけで(または既存のスタイルシートを使用してください!)。 CSSのカスケードの性質を使用して、エラーのある要素の表示方法を変更します。次のようなものを追加します:
.error {
border: 0;
}
...そしてあなたは終わった。
特定のフォームのみをターゲットにするには、次のように別のセレクターを追加します。
#my-specific-form .error {
border: 0;
}