2009-06-27 10 views
0

J'ai ajouté un bouton d'envoi dans un fieldgroup sur un formulaire CCK en utilisant hook_form_alter comme suit:Arrêtez un bouton d'envoi personnalisé à partir de la cuisson de la validation du formulaire sur un formulaire 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'), 
    ); 

    } 
} 

Lorsque j'appuie sur le bouton, la gestionnaires de validation pour la forme complète, par exemple. vérifie les champs obligatoires, exécute comme si j'avais appuyé sur le bouton 'Soumettre' à la fin du formulaire.

Je pensais que changer la propriété #name de 'op' en 'searchwiki' empêcherait ce genre de confusion, mais pas.

Est-ce que quelqu'un sait une solution de contournement pour cela?

Répondre

0

Je crois que le formulaire entier sera toujours soumis quel que soit le bouton de soumission que l'utilisateur appuie. Si vous voulez faire une fonction de recherche, ce que vous pourriez faire, c'est faire AJAX qui récupère les données et les affiche. En utilisant jQuery, vous seriez également capable d'arrêter la soumission du formulaire, mais en retournant FALSE sur la fonction de clic sur le bouton (que vous pouvez faire dans votre js). Vous ne serez probablement pas en mesure d'utiliser la bonté de l'api de forme Drupal cependant.

+0

Le plan est d'ajouter un rappel AHAH au bouton pour que je puisse déclencher une requête à Wikipédia en arrière-plan et remplacer le champ de corps texte après que l'utilisateur a effectué une recherche. CCK parvient à le faire avec ses boutons Ajouter plus, donc je suppose que je vais continuer à creuser là-bas. Merci quand même. Je peux utiliser jQUery etc en dernier recours. – hitfactory

Questions connexes