0

次のように hook_form_alter を使用して、CCK フォームのフィールド グループ内に送信ボタンを追加しました。

function mymodule_form_alter(&$form, $form_state, $form_id) {

  if ($form_id == 'object_node_form') {

   $form['group_wikipedia']['search'] = array(

 '#type' => 'submit',
 '#value' => t('Search Wikipedia'),
 '#name' => 'searchwiki',
 '#submit' => array('mymodule_searchwiki_submit'),
   );

  }
}

ボタンを押すと、完全なフォームの検証ハンドラーが表示されます。フォームの最後にある [送信] ボタンを押したかのように、必須フィールドをチェックします。

#name プロパティを 'op' から 'searchwiki' に変更すると、この種の混乱を防ぐことができると思いましたが、そうではありませんでした。

誰もこれに対する回避策を知っていますか?

4

2 に答える 2

0

ユーザーがどの送信ボタンを押しても、フォーム全体が常に送信されると思います。検索機能を作成したい場合は、データを取得して表示するAJAXを作成することができます。jQueryを使用すると、フォームの送信を停止することもできますが、ボタンクリック関数(jsで作成できます)でFALSEを返します。ただし、DrupalフォームAPIの長所を使用することはおそらくできないでしょう。

于 2009-06-29T08:36:24.230 に答える
-1

jQuery の event.preventDefault() を使用できます

http://api.jquery.com/event.preventDefault/

于 2010-03-30T02:07:01.230 に答える