web-dev-qa-db-fra.com

La boîte de dialogue Jquery ne fonctionne pas dans Joomla 3

Ici, j'essaie d'afficher une boîte de dialogue jQuery avec trois boutons après avoir cliqué sur le bouton Supprimer du composant côté administrateur de Joomla.Utilisation du modèle Joomla de base uniquement.Mais la boîte de dialogue ne s'affiche pas.

Voici ma vue.html.php

JHtml::_('jquery.framework'); // load jquery
JHtml::_('jquery.ui'); // load jquery ui from Joomla

code de script

    <script type="text/javascript">
    Joomla.submitbutton = function(task){
    if (task == 'groups.cascadedelete') {
           jQuery('<p>Are you sure?</p>').dialog({
                buttons: {
                     "Cascade Delete": function() {          
                        jQuery('#cascadedelete').val('1');   
                        Joomla.submitform(task, document.getElementById('adminForm'));
                        },
                    "Delete":  function() {
                        Joomla.submitform(task, document.getElementById('adminForm'));
                        },
                    "Cancel":  function() {
                        dialog.dialog('close');
                    }
                }
            });
    }else{
        Joomla.submitform(task, document.getElementById('adminForm'));
    }   
}
</script>

Si je clique sur le bouton de soumission, la fenêtre contextuelle ne s'affiche pas.

TypeError: jQuery(...).dialog is not a function
1
ram

JHtml::_('jquery.ui'); ne chargera que le composant principal . Le dialogue ne semble pas en faire partie.

Vous pouvez spécifier les composants à charger. Cependant, le seul autre composant pris en charge est sortable

Ce qui signifie que dialog n'est tout simplement pas livré avec Joomla. Vous devez distribuer et charger votre propre copie.

Cela étant dit, vous devriez jeter un coup d'œil aux info-bulles, aux popover et aux modaux de Bootstrap 2.3. Ceux-ci sont livrés avec Joomla et peuvent être utilisés à des fins similaires.

1
Bakual

Essaye ça:

Vérifiez également si le script Jquery Ui est chargé correctement ou non

if (task == 'groups.cascadedelete') {
           jQuery('<p>Are you sure?</p>').dialog({
           autoOpen : true,width : popWidth,modal : true,dialogClass: 'no-close',
            draggable: true, resizable: true, position: [306,105],
            buttons : {


    "Cancel":  function() 
    {
    $(this).remove();
    or
    $(this).dialog("close");
    }
0
Jextn

Ça marche pour moi

default.php

<div class="modal hide" id="myModal">
  <div class="modal-header">
    <a class="close" data-dismiss="modal"><img src="<?php echo JURI::root();?>delete14.png" alt="<?php echo JText::_( 'GROUPL_DELETE_ICON' ); ?>" /></a>
    <h3><?php echo JText::_('GROUPL_DELETE')?></h3>
  </div>
  <div class="modal-body">
    <p><?php echo JText::_('SELECT_DELETE_METHOD')?></p>
  </div>
  <div class="modal-body">
    <a href="#" class="btn" onclick="cascadeDelete();"><?php echo JText::_('CASCADE_DELETE')?></a>
    <a href="#" class="btn"  onclick="Delete();"><?php echo JText::_('DELETE')?></a>
    <a href="#" class="btn"  onclick="cancelDelete();"><?php echo JText::_('GENERAL_CLOSE')?></a>
  </div>
</div>

validation.js

Joomla.submitbutton = function(task){
if (task == 'cascadedelete') {
    jQuery('#myModal').modal('show');
}}
0
ram