Używanie modalnego trybu Bootstrap na Twitterze zamiast okna potwierdzenia
Próbuję użyć modalnego modalnego Twittera bootstrap zamiast niestandardowego okna potwierdzenia.
Moja funkcja
function getConfirm(confirmMessage){
if ( confirmMessage == undefined){
confirmMessage = '';
}
$('#confirmbox').modal({
show:true,
backdrop:false,
keyboard: false,
});
$('#confirmMessage').html(confirmMessage);
$('#confirmFalse').click(function(){
$('#confirmbox').modal('hide');
return false;
});
$('#confirmTrue').click(function(){
$('#confirmbox').modal('hide');
return true;
});
}
</script>
<div class="modal" id="confirmbox" style="display: none">
<div class="modal-body">
<p id="confirmMessage">Any confirmation message?</p>
</div>
<div class="modal-footer">
<button class="btn" id="confirmFalse">Cancel</button>
<button class="btn btn-primary" id="confirmTrue">OK</button>
</div>
</div>
Wywołanie funkcji
var confimChange=getConfirm("Do You confirm?");
if(confimChange){
alert('perfect you confirmed')
}else{
alert('why didnt you confirmed??')
}
Problem polega na tym, że funkcja getConfirm nie zwraca true ani false.
KOD ROBOCZY:
if(receiverListCount > 0){
var confimChange=confirm("Message");
if(confimChange){
resetReceiverList();
}else{
return false;
}
}
Fragment kodu po modyfikacjach i zmianach / nie działa
if(activeDiv == '#upload'){
if(listOfSelectedGroups.length> 0|| receiverListCount > 0){
getConfirm("message",function(result){
if(result){
resetReceiverList();
}else{
return false;
}
});
}
}
Ostatecznie zdecydowałem się użyć bootboxjs
1 answers
Twoje podejście jest błędne, będzie uruchamiane asynchronicznie, aby nie czekać na zamknięcie okna modalnego przed powrotem. Spróbuj czegoś takiego:
function getConfirm(confirmMessage,callback){
confirmMessage = confirmMessage || '';
$('#confirmbox').modal({show:true,
backdrop:false,
keyboard: false,
});
$('#confirmMessage').html(confirmMessage);
$('#confirmFalse').click(function(){
$('#confirmbox').modal('hide');
if (callback) callback(false);
});
$('#confirmTrue').click(function(){
$('#confirmbox').modal('hide');
if (callback) callback(true);
});
}
getConfirm('Are you sure?',function(result) {
// Do something with result...
});
Zauważ jednak, że tak naprawdę musisz tylko raz zainicjować modal i zaczepić zdarzenia raz. Podałbym modalne ciało i ID i po prostu zmieniłbym treść przed pokazaniem.
Powinieneś również ustawić tło na true, chcesz potwierdzenia, aby uniemożliwić użytkownikowi dostęp do strony, dopóki nie potwierdzi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 15:56:33