2017-06-19 2 views
0

J'ai une grande forme ajax avec 4 champs déroulants et des boutons add/romove sous chacun d'eux. Le problème est que je ne peux pas faire fonctionner le formulaire si les valeurs des boutons sont les mêmes, et j'ai besoin qu'ils soient identiques au moins visuellement parce que cela semble ridicule sinon. S'ils ont la même valeur #, c'est le dernier bouton qui est appelé à chaque fois. Ainsi, de nouveaux champs déroulants sont ajoutés à la 4ème "région déroulante". Ce serait parfait s'il y avait #title ou #text pour le champ de type #submit. Mais il n'y en a pas.Comment changer le texte du bouton Soumettre sans perte de fonction?

Voici un exemple d'un des boutons sur lesquels j'écris. Peu importe si callback ou #submit sont différents pour chaque bouton. Si la valeur est la même (y compris si c'est fait module de traduction), le dernier est appelé.

if ($form_state['num_names_3'] > 1) { 
 
     $form['dropdown_fieldset']['remove_name_3'] = array(
 
     '#type' => 'submit', 
 
     '#value' => t('Remove one 3'), 
 
     '#submit' => array('order_wood_3_add_more_remove_one'), 
 
     '#ajax' => array(
 
      'callback' => 'order_wood_3_add_more_callback', 
 
      'wrapper' => 'dropdown_fieldset', 
 
     ), 
 
    ); 
 
    }

Répondre

0

S'il vous plaît appliquer #name propriété dans vos champs alors que votre coutume définissent soumettre des œuvres peu importe si #value texte est identique ou différent.

if ($form_state['num_names_3'] > 1) { 
    $form['dropdown_fieldset']['remove_name_3'] = array(
    '#type' => 'submit', 
    '#value' => t('Remove'), 
    '#name' => 'remove_name_3', 
    '#submit' => array('order_wood_3_add_more_remove_one'), 
    '#ajax' => array(
     'callback' => 'order_wood_3_add_more_callback', 
     'wrapper' => 'dropdown_fieldset', 
    ), 
); 
} 

Cela peut vous être utile.

Merci,