Остановить пользовательскую кнопку отправки от запуска проверки формы в форме CCK

Я добавил кнопку отправки внутри группы полей в форме CCK, используя hook_form_alter следующим образом:

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' предотвратит этот тип путаницы, но не так.

Кто-нибудь знает обходной путь для этого?

2 ответа

Я считаю, что вся форма будет всегда отправлена ​​независимо от того, какую кнопку отправить нажимает пользователь. Если вы хотите создать функцию поиска, то вы можете создать AJAX, который извлекает данные и отображает их. Используя jQuery, вы также сможете остановить отправку формы, но верните FALSE в функции нажатия кнопки (которую вы можете сделать в своем js). Вы, вероятно, не сможете использовать все возможности API-интерфейса Drupal.

Вы можете использовать jQuery's event.preventDefault ()

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

Другие вопросы по тегам