質問

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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top