Остановить пользовательскую кнопку отправки от запуска проверки формы в форме 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 ()