Остановить пользовательскую кнопку отправки от запуска проверки формы в форме CCK - PullRequest
0 голосов
/ 28 июня 2009

Я добавил кнопку отправки внутри группы полей в форме 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 ]

0 голосов
/ 30 марта 2010

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

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

0 голосов
/ 29 июня 2009

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

...