Lorsque j'appuie sur le bouton Supprimer sur certains contenus, je suis redirigé vers une page de confirmation. L'option de suppression est un bouton, tandis que l'option d'annulation est un lien. Cela a l'air plutôt bizarre. J'ai trouvé qu'il y a une fonction form_confirm() dans drupal, mais je ne peux pas comprendre comment l'utiliser. Est-ce que quelqu'un sait comment faire le lien annuler dans un bouton?Drupal - faire le lien annuler sur la page de confirmation un bouton
1
A
Répondre
0
Ou cela en utilisant pas javascript (et le remplacement eregi() avec preg_match() ...
if ($form['#theme'] == 'confirm_form') {
$no = $form['actions']['cancel']['#value'];
if (!is_null($no)) {
// Get the text to put on the cancel button
$value = preg_replace('/(<\/?)(\w+)([^>]*>)/e', '', $no);
preg_match('/href\s*=\s*\"([^\"]+)\"/', $no, $href);
$form['actions']['cancel']['#value'] = '';
$form['href']=array(
'#type'=>'value',
'#value'=>$href[1],
);
// Add our own button
$form['actions']['docancel'] = array(
'#type' => 'submit',
'#name' => 'cancel',
'#submit' => array('mymodule_confirm_form_cancel'),
'#value' => $value,
);
}
}
et
function mymodule_confirm_form_cancel(&$form,&$form_state) {
$href=$form['href']['#value'];
if (!is_null($href)) {
$form['#redirect']=$href;
}
}
2
La raison pour laquelle le lien d'annulation ressemble à un lien est parce que c'est un lien <a>
, tandis que le bouton de confirmation, est un élément de soumission de formulaire <input type="submut>
.
Si vous souhaitez créer le lien d'annulation, pour ressembler à un bouton d'envoi, vous pouvez le faire avec du CSS pur.
1
, essayez cette aide hook_form_alter():
if($form['#theme'] == 'confirm_form') {
$no = $form['actions']['cancel']['#value'];
if (!is_null($no)) {
// Get the text to put on the cancel button
$value = preg_replace('/(<\/?)(\w+)([^>]*>)/e', '', $no);
eregi('m|href\s*=\s*\"([^\"]+)\"|ig', $no, $href);
$form['actions']['cancel']['#value'] = '';
// Add our own button
$form['actions']['docancel'] = array(
'#type' => 'button',
'#button_type' => 'reset',
'#name' => 'cancel',
'#submit' => 'false',
'#value' => $value,
'#attributes' => array(
'onclick' => '$(this).parents("form").attr("allowSubmission", "false");window.location = "'.$href[1].'";',
),
);
// Prevent the form submission via our button
$form['#attributes']['onsubmit'] = 'if ($(this).attr("allowSubmission") == "false") return false;';
}
}
0
Pour Drupal 7 j'utilise:
/**
* Implements hook_form_alter().
*/
function yourmodule_form_alter(&$form, $form_state, $form_id) {
// Change 'cancel' link to 'cancel' button.
if ($form['#theme'] == 'confirm_form') {
if ($form['actions']['cancel']['#type'] == 'link') {
$title = $form['actions']['cancel']['#title'];
$href = $form['actions']['cancel']['#href'];
if (!is_null($title) and !is_null($href)) {
// Disable Cancel link.
$form['actions']['cancel']['#title'] = '';
// Add our own Cancel button.
$form['actions']['docancel'] = array(
'#type' => 'submit',
'#name' => 'cancel',
'#submit' => array('yourmodule_confirm_form_cancel'),
'#value' => $title,
);
}
}
}
}
/**
* Redirect to previous page after confirm form cancel().
*/
function yourmodule_confirm_form_cancel(&$form, &$form_state) {
$href = $form['actions']['cancel']['#href'];
if (!is_null($href)) {
$form_state['redirect'] = $href;
}
}
Le problème a également été signalé pour Drupal 8, mais l'équipe centrale de Drupal n'a pas l'intention de résoudre le problème dans le noyau. Voir la demande de support Drupal Change confirmation form Cancel link to a button. Meilleures salutations
Questions connexes
- 1. Faire annuler le bouton du clavier inférieur
- 2. rediriger un lien de la page et le texte changeant de page basée sur le lien
- 3. bouton de lien maître page
- 4. rester sur la même page lorsque vous cliquez sur le bouton Annuler dans sharepoint login
- 5. Silverlight Fermer/Annuler le bouton
- 6. Menu déroulant sur le bouton Lien?
- 7. annuler la page de chargement en javascript
- 8. pop up page, quand un bouton de lien est cliqué
- 9. Bouton "Fermer" sur la page
- 10. Drupal passe argument à la page
- 11. Comment annuler l'action de lien?
- 12. Comment conserver les données en cliquant sur le bouton Annuler dans la page.
- 13. Faire défiler le bloc avec la page en drupal
- 14. comment faire la page en lien
- 15. Demander confirmation à la page décharger
- 16. Oui, Non, Annuler Confirmation dans Silverlight
- 17. comment ouvrir un document Word sur le bouton de lien
- 18. Comment faire un bouton "J'aime" sur Facebook qui est juste un lien, pas un iFrame?
- 19. Comment activer le bouton Annuler sur l'interface utilisateur Searchbar iPhone
- 20. Bouton Annuler pour System.Drawing?
- 21. comment désactiver le lien d'édition de la page de vue de noeud de drupal?
- 22. Actions de confirmation Javascript
- 23. Comment fermer une page Web sur un clic de bouton, un lien hypertexte ou un clic sur un bouton de lien?
- 24. Appuyer sur le bouton Annuler ne se rétracte pas
- 25. HTML - Formulaire Bouton Soumettre Confirmation Dialog
- 26. Flex Spark: Comment ajouter un bouton Annuler sur le bouton TabBar?
- 27. Deux formulaires sur la même page drupal
- 28. Javascript - Confirmation en quittant la page
- 29. problème de lien avec Drupal 6.16
- 30. Bouton Annuler sur osascript dans un script bash
Dans Safari (et Chrome?), C'est aussi simple que d'utiliser '-webkit-appearance: bouton-poussoir'. –
J'ai regardé sur Internet mais je ne trouve pas le bon code CSS. Tout ce que je trouve est de savoir comment faire des boutons élégants, mais je veux simplement un bouton système régulier. – Toxid