0

フォーム API で構築されたカスタム Drupal 6 モジュールにフォームがあり、リストに 1 つ以上の image_button 要素があり、その後に [保存] ボタンと [キャンセル] ボタンが続きます。

画像ボタンと標準ボタンをクリックすると、すべて正常に機能し、必要な送信機能が呼び出されますが、フォームのテキスト フィールドのいずれかで [ENTER] キーを押すと、フォームの最初のボタンが送信されます。この場合は、[保存] ボタンではなく、リスト内の image_button です。

これは Web フォームの標準的な問題です。通常、フォーム定義の早い段階で非表示の (スタイルおよび/またはサイズによって) ボタンをハックして、デフォルトの送信パスが呼び出されるようにする必要があります (この場合、[保存] ボタンが呼び出すものです)。 ) ではなく、デフォルトにしたいボタンの前にあるボタンの送信パス。

ドキュメントで見つけられなかったフォーム定義の場所に関係なく、デフォルト ボタンを設定できるようにする Drupal 6 マジックはありますか、それとも非表示のスタイルのファントム送信ボタンを作成する必要がありますか?

ご回答ありがとうございます。

4

3 に答える 3

0

'#weight'あなたのボタンにつけてみてください。

于 2011-11-18T18:02:50.437 に答える
0

[ENTER]を押したときにフォームの最初のボタンがデフォルトになるという問題を回避する組み込みのDrupalメソッドはありません。

これが私がしなければならなかったことです。

フォームの上部に追加の送信ボタンを作成しました。

// A submit button that needs to be hidden, it'll be the default rather than one from the list.
$form['hidden-submit'] = array(
  '#type' => 'submit',
  '#value' => 'Save',
  '#attributes' => array('class' => 'hidden-default-submit'),
);

ページに含まれる CSS に、次のベルトとブレース CSS を追加して、テストできる限り多くの Web ブラウザーで追加の送信ボタンを非表示にしました。

.hidden-default-submit {
  position: absolute;
  left: -2000;
  top: -2000;
  width: 0;
  height: 0;
  border: 0;
  margin: 0;
  padding: 0;
}
于 2011-11-22T15:23:59.870 に答える