chiusura finestra dialog Popu

  • Creatore Discussione Creatore Discussione ans66
  • Data di inizio Data di inizio

ans66

Utente Attivo
27 Ago 2011
158
0
16
Ciao a tutti!

Ho creato una funzione con la quale creo una finestra dialog, tipo Popup:

Codice:
function PopupCenterPHP(hidden_div)
{

$(".tabelle").css("left","-100px");

if(form_tag_div=="dialogPHP") {
$.get( "tabSoggetti2.php", function( data ) {
  $("#"+form_tag_div).html( data );
});

}

if(form_tag_div=="dialogPHP2") {
$("#"+form_tag_div).load("TabCateg.php");
$("#miacategoria").val('');
$("#miacategoria").prop("disabled", false);
$("#miecategorie").prop("disabled", true);

$("#miecategorie option:eq(0)").attr("selected", "selected");

}

if(form_tag_div=="dialogPHP3") {
$("#"+form_tag_div).load("TabDoveAcq.php");
$("#miodoveacq").val('');
$("#miodoveacq").prop("disabled", false); 
$("select#miodoveacquistato").prop("disabled", true);

$("#miodoveacquistato option:eq(0)").attr("selected", "selected");

}

// pulsanti come aggiungi
$(".uno").css('background-image', "url(images/primo2.png)");
$(".due").css('background-image', "url(images/indietro2.png)");
$(".cinque").css('background-image', "url(images/avanti2.png)");
$(".sei").css('background-image', "url(images/ultimo2.png)");
$(".sette").css('background-image', "url(images/piu2.png)");
$(".otto").css('background-image', "url(images/ok.png)");
$(".nove").css('background-image', "url(images/no.png)");
$(".tredici").css('background-image', "url(images/vai2.png)");
$(".quattordici").css('background-image', "url(images/canc2.png)");
$(".quindici").css('background-image', "url(images/close.png)");


$("#"+hidden_div).show();


$("#"+form_tag_div).dialog({

  height: 500,
  width: 1100,
  autoOpen: false,
  modal: false,
  position: {
                    my: "center",
                    at: "center",
                    of: $("body"),
                    within: $("body")
        
            },
        
  close: function(event, ui){
                                  $(this).dialog("close")
                              
                             }

});



}

Al click di chiusura di un tasto che intercetto nella seguente funzione avrei bisogno di chiudere la finestra dialog dall'esterno:

Codice:
// pulsante $("#sixteen_") funzionante e testato con alert
$("#sixteen_").click(function(){

//$("#"+form_tag_div).dialog('close'); chiusura dialog non funzionante !


});

codice chiamante della dialog open:

Codice:
$("#"+form_tag_div).dialog("open");

codice che opera cambiamenti sulla finestra dialog e che secondo me creano la "non chiusura":

Codice:
// select change
$( "select#nome" ).change(function() {
var nomesel = $( "select#nome option:selected" ).text();
$("#nomesog").val(nomesel);
});
$( "select#cognome" ).change(function() {
var cognomesel = $( "select#cognome option:selected" ).text();
$("#cognomesog").val(cognomesel);
});

Avrei davvero bisogno di una mano. Grazie.
 
Ultima modifica:
Ciao Criric. Grazie per la risposta. Si ho lasciato commentato per errore
Codice:
//$("#"+form_tag_div).dialog('close'); chiusura dialog non funzionante !
ma il mal funzionamento purtroppo non è dovuto a ciò. Facendo molte prove ho capito che la posizione della dichiarazione della variabile di
Codice:
 form_tag_div="dialogPHP";
e della funzione Dialog
Codice:
$("#"+form_tag_div).dialog({
  close: function(event, ui){ },
  height: 500,
  width: 1100,
  autoOpen: false
 });
modifica il comportamento nell'apertura e chiusura.

se dichiaro subito la variabile apro la finestra dialog ma non la chiudo:

Codice:
$( document ).ready(function() {

// load external resources for dialog 
loadjscssfile("//code.jquery.com/ui/1.11.4/jquery-ui.js", "js");
loadjscssfile("//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css", "css");

var form_tag_div;
form_tag_div="dialogPHP";

diversamente non si apre.

Credo che dovrei inviare il file script completo per riuscire a farti vedere dove è l'errore. Io purtroppo non lo trovo
 
Dopo tanto tempo ho ripreso a mano questo codice e ho risolto come segue:

Dichiaro dialog all'interno di una funzione:

Codice:
var my_dlg;

function MioDialogo(formtagdiv) {
var mydlg=$("#"+formtagdiv).dialog({
  autoOpen: false,
  modal: true,
  close: function(event, ui){ },
  height: 500,
  width: 1100
 
 });

 return mydlg;
}

Caso di un nuovo soggetto:

Codice:
if(Sel!="NUOVO SOGGETTO") {} else {
  
     form_tag_div="dialogPHP";
     my_dlg=MioDialogo(form_tag_div);
     PopupCenterPHP("indivphp");
     my_dlg.dialog("open");
    
}

Nella Funzione PopupCenterPHP :

Codice:
if(form_tag_div=="dialogPHP") {
$.get( "tabSoggetti2.php", function( data ) {
my_dlg.html( data );
window.dlgToclose=my_dlg;  // qui dichiaro la variabile global da passare per la chiusura
$("select#nome option:eq(0)").attr("selected", "selected");
$("select#cognome option:eq(0)").attr("selected", "selected");
$("select#nome").prop("disabled", true);
$("select#cognome").prop("disabled", true);
$("#nomesog").prop("disabled", false);
$("#cognomesog").prop("disabled", false);
});

}

Chiusura Dialog PopUp:

Codice:
$("#sixteens").click(function(){
dlgToclose.dialog("close");
$(".tabelle").css("left","100px");
});
 

Discussioni simili