2013-03-19 3 views
1

я это следующий код для создания диалога подтверждения с использованием Bootstrap модальным, то предположим, что называется в закрытии:Почему этот диалог подтверждения Bootstrap не работает?

this.events.register(this, function(e) { 

    this.makeModal(e); 

    // this is what used to work for me 
    /* 
    if (confirm('Are you sure?')) { 
    alert(e.data); 
    } else { 
    // DO NOTHING 
    } 
    */ 
}); 

makeModal: function(e) {  

    //... 

    $(btnCancel).on("click", $(modal).modal('hide')); 
    $(btnConfirm).on("click", alert('confirm')); 
} 

Есть только две кнопки, а именно btnCancel и btnConfirm. Проблема заключается в том, что после вызова внешней функции внутреннее предупреждение также будет немедленно инициировано, что делает диалог подтверждения бесполезным. Как я могу это исправить? По какой-то причине я не могу использовать такие библиотеки, как bootbox и т. Д.

Или я могу просто вернуть да или нет из этого модального? Если да, то как я могу это сделать?

Спасибо заранее!


EDIT: Это моя слабая попытка вернуть да или нет:

makeModal: function(e) {  

    //... 
    var choice; 
    $(btnCancel).on("click", choice = false); 
    $(btnConfirm).on("click", choice = true); 
    return choice; 
} 

ответ

3

Вот пример другого способа добиться того, что вы пытаетесь сделать:

$('#myModal').bind('show', function() { 
    var id = $(this).data('id'), 
    yesBtn = $(this).find('.danger'); 
    $(yesBtn).data('id', id); 

}).modal({ backdrop: true }); 

$('.delete-button').click(function(e) { 
    e.preventDefault(); 
    var id = $(this).data('id'); 
    $('#myModal').data('id', id).modal('show'); 
}); 

$('.danger').click(function(){ 
    var id = $(this).data('id'); 
    $('#myModal').modal('hide'); 
    alert('Deleting: ' + id); 
    //Do something with id 
}); 

Click here to see the JsFiddle

+0

Я использовал другие средства для достижения своей цели, поэтому я не тестировал ваш код в своем приложении ция. Но я просто приму свой ответ, потому что скрипка работает, спасибо! – Hypnos

Смежные вопросы