2013-05-26 22 views
7

Sto cercando di usare questo:Bootbox richiamata non funziona correttamente

$('#delete').live('click',function(){ 
       var result; 
       bootbox.confirm("Are you sure?", function(response){ 
         result=response; 
       }); 
       alert(result); 
       return result; 
      }); 

Ma quando il pulsante viene premuto:

avviso viene visualizzato per primo e solo dopo che gli spettacoli bootbox dialogo confermare.

Voglio restituire la risposta, ma se lo faccio da dentro la richiamata non funziona perché restituisce la risposta dalla richiamata ma non $ ('# devicedelete'). Live ('clic', funzione() {});

Btw Sto cercando di inviare un modulo basando sulla risposta. Quindi, se restituisco il modulo "true", verrà inviato, altrimenti se restituisce "false", la forma non verrà inviata.

Si prega di controllare questo: http://pastebin.com/9H3mxE9Y

Ho un grande tavolo con le caselle di controllo per ogni riga, gli utenti selezionano le caselle di controllo e fare clic su uno dei pulsanti 'cancella', devono essere presentate 'copia', ecc e la forma.

Grazie

risposta

4

La finestra di dialogo è asincrona, è possibile impedire l'azione di default subito, e quindi chiamare il presentare se l'utente accetta. Ecco un esempio: http://jsfiddle.net/ty5Wc/3/

$('#delete').on('click', function (e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function (response) {   
     if(response) { 
      $('#form').submit(); 
     } 
    }); 
}); 
$('#form').submit(function() { 
    //do your validation or whatever you need to do before submit 
}); 

Edit: Dopo aver parlato di più con OP, anche lui voleva passare il valore pulsante nella stringa di query, la mia soluzione per questo è qui: http://jsfiddle.net/ty5Wc/5/

$('#delete').on('click', function (e, confirmed) { 
    if (!confirmed) { 
     e.preventDefault(); 
     bootbox.confirm("Are you sure?", function (response) { 
      if (response) { 
       $('#delete').trigger('click', true); 
      } 
     }); 
    } 
}); 
$('#form').submit(function (e) { 
    //do your validation or whatever you need to do before submit 
}); 
+0

Ciao, vuoi restituire il valore della risposta, la risposta sarà "vero" o "falso". ma se lo faccio da dentro la richiamata non funziona perché restituisce la risposta dal callback. –

+0

Questo sta succedendo al click, a cosa lo restituirebbe? In ogni caso, invece di fare qualsiasi cosa tu voglia dopo che è ritornato, basta renderli in funzioni e chiamare quelle funzioni all'interno del callback. – smerny

+0

Grazie, si prega di controllare la mia domanda ora, ho curato lo –

Problemi correlati