it-swarm.com.de

Das Dialogfeld "JQuery" funktioniert in Joomla 3 nicht

Hier versuche ich, ein JQuery-Dialogfeld mit drei Schaltflächen anzuzeigen, nachdem ich auf die Schaltfläche "Löschen" der Joomla-Administratorkomponente geklickt habe. Es wird nur die Kern-Joomla-Vorlage verwendet. Das Dialogfeld wird jedoch nicht angezeigt. Es wurde mit dem einfachen Dialogfeld versucht.

Hier ist meine view.html.php

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

skriptcode

    <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>

Wenn ich auf die Schaltfläche zum Senden klicke, wird das Popup nicht angezeigt. Ich habe die Konsole in Mozilla überprüft und es heißt wie folgt:

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

JHtml::_('jquery.ui'); lädt nur die Kernkomponente . Der Dialog scheint nicht dazu zu gehören.

Sie können angeben, welche Komponenten geladen werden sollen. Die einzige andere unterstützte Komponente ist sortable

Das heißt, dialog wird nicht mit Joomla ausgeliefert. Sie müssen Ihre eigene Kopie verteilen und laden.

Davon abgesehen sollten Sie sich die Tooltips, Popover und Modals von Bootstrap 2.3. Diese werden mit Joomla ausgeliefert und können für ähnliche Zwecke verwendet werden.

1
Bakual

Versuche dies:

Überprüfen Sie auch, ob Jquery Ui Script richtig geladen ist oder nicht

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

Das funktioniert bei mir

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