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,您还可以停止表单提交,但在按钮单击功能上返回 FALSE(您可以在 js 中制作)。不过,您可能无法使用 Drupal 表单 API 的优点。

于 2009-06-29T08:36:24.230 回答
-1

你可以使用 jQuery 的 event.preventDefault()

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

于 2010-03-30T02:07:01.230 回答