4

drupal フォームが検証に失敗すると、検証に失敗した要素が赤い境界線で囲まれて再描画されます。Drupal は、このerrorクラスを input 要素に追加し、 の input.error 要素に 2 ピクセルの赤い境界線を指定することでこれを行いsystem.cssます。

このスタイルシートを変更せずに、サイトの残りの部分でデフォルトの動作を使用しながら、特定のフォームでのみ赤い境界線を削除するにはどうすればよいですか?

ソリューションには custom を使用する必要があるtheme_form_elementと思いますが、単一のフォームのみをカスタマイズする方法がわかりません。

このjQueryトリックに頼らずにこれを行いたいことに注意してください(これは機能します):

$("#edit-name").removeClass('error');
4

2 に答える 2

2

フォーム項目からエラー クラスを削除する必要があります。theme_textfieldこれは、テーマ関数 inを上書きすることで実行できtheme_textareaます (タイプごとに 1 つあります)。

$element['#attributes']['class']エラークラスが含まれているを見てください。

編集
特定のフォーム要素またはフォームに対してそれを行うには#theme、テーマ機能を変更する属性またはいずれかのフォームまたは要素を使用できます。

于 2010-04-30T18:11:08.660 に答える
0

最も簡単な方法は、Drupal が発見したマークアップを変更しようとするのではなく、errorクラスに関連付けられたスタイルを変更することです。

system.css を変更せずにそれを行うことができます。テーマに新しいスタイルシートを追加するだけです (または既存のスタイルシートを使用してください!)。CSS のカスケーディングの性質を使用して、エラーのある要素の表示方法を変更します。次のようなものを追加します。

.error {
  border: 0;
}

...そして完了です。

1 つの特定のフォームのみをターゲットにするには、次のように別のセレクターを追加します。

#my-specific-form .error {
  border: 0;
}
于 2016-09-13T23:43:48.680 に答える