Запретить настраиваемой кнопке отправки запускать проверку формы в форме 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 предотвратит подобную путаницу, но это не так.

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


person hitfactory    schedule 27.06.2009    source источник


Ответы (2)


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

person googletorp    schedule 29.06.2009
comment
План состоит в том, чтобы добавить к кнопке обратный вызов AHAH, чтобы я мог запускать запрос к Википедии в фоновом режиме и заменять поле тела текстом после того, как пользователь выполняет поиск. CCK удается сделать это с помощью кнопок «Добавить еще», так что я думаю, что буду продолжать копаться в этом направлении. Спасибо, в любом случае. В крайнем случае я могу использовать jQUery и т. Д. - person hitfactory; 29.06.2009

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

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

person Marlorn    schedule 30.03.2010