Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Bootstrap, sapere se e' gia' aperta una finestra modal

    Ciao a tutti,

    utilizzo questo codice per mostrare degli errori a video con il modal tramite bootstrap:

    codice HTML:
    function modale(aviso) {    
    $("#modalAviso").html(aviso);    
    $("#modalVentana").modal("show");
    }
    La versione e':
    Bootstrap v4.0.0-alpha.6
    Posso sapere se c'e' gia' una finestra aperta?
    Il mio problema e' che in alcuni casi, in presenza di due errori distinti, vengono lanciati due modal e viene visualizzato solo l'ultimo.
    io avrei bisogno che in presenza del primo errore non vengano aperte ulteriori finestre modal!


    Grazie,
    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Quando la modal è attiva viene inserita la classe .show
    Quindi verificando la presenza di tale classe puoi capire se la modal è aperta o meno.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Quando la modal è attiva viene inserita la classe .show
    Quindi verificando la presenza di tale classe puoi capire se la modal è aperta o meno.
    Ciao, grazie della risposta; avevo provato già questa strada, ovvero vedere se era presente o no la classe show, il problema è che, quando io verifico se è presente la classe show nel modal, tale modal non è stato ancora renderizzato a video, per cui non possiede ancora la classe in questione!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Ho risolto così:
    codice:
    var modaleRunning=false;
    function modale(aviso) {
        if(!modaleRunning){
        $("#modalAviso").html(aviso);
        $("#modalVentana").modal("show");
        modaleRunning=true;
        setTimeout(function(){ modaleRunning=false; }, 1000);
        }
    }
    In questo modo, per 1 secondo, permette l'esecuzione solo del primo modal, successivamente, dopo 1 secondo, ripristina la possibilità di eseguirlo nuovamente!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Ok il problema era che gestivi del codice asincrono come se fosse sincrono e quindi non funzionava.
    In questo modo riesci a bypassare il problema, probabilmente in base a come è il resto del codice si potrebbe fare meglio, ma così dovrebbe funzionare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.