我需要一个带有自定义设计和动态消息的javascript 确认框。
我的问题是:我需要一个函数来调用该调用如何才能收到该弹出窗口的结果; (如是或否)。这可能吗?
代码
if (confirm('Are you sure?')){
//Do the process
}
else{
//Show Error
}
我想用我的自定义样式覆盖该确认
答案 0 :(得分:3)
如何制作一个允许用户回复的隐藏div
<div id="confirm" class="noshow">
<div id="messageContent" class="message"></div>
<div id="okButton" onClick="doConfirm(true)" class="button"></div>
<div id="cancelButton" onClick="doConfirm(false)" class="button"></div>
</div>
现在您可以使用getElementById('messageContent')
轻松设置消息,同样现在可以使用ok
和cancel
函数处理doConfirm(true)
和doConfirm(false)
操作
以简单的方式,你的javascript就像
doConfirm(flag){
return flag;
}
并拥有像
这样的CSS.noshow{display:none;}
现在你可以在运行时从javascript构建html并附加事件处理程序,但这是我能想到的最简单的。
答案 1 :(得分:1)
您可以使用回调来执行此操作
确认处理程序,将其添加到您的全局JavaScript文件中
function ConfirmInDiv(message, okcallback, cancelcallback) {
$('#confirmation-holder').show();
$("#confirmation_message").text(message);
$('#Confirmation_Ok').unbind('click');
$('#Confirmation_Ok').click(okcallback);
$('#Confirmation_Cancel').unbind('click');
$('#Confirmation_Cancel').click(cancelcallback);
}
function HideConfirmDiv() {
$('#confirmation-holder').hide();
}
HTML,应该位于您的布局文件中:
<div id="confirmation-holder" style="display:none">
<div id="confirmation_message"></div>
<a id="Confirmation_Ok" href="#" class="button">OK</a>
<a id="Confirmation_Cancel" href="#" class="button light-button">Cancel</a>
</div>
无论你想在哪里调用你的javascript确认:
而不是这个
function delete()
{
if(confirm("Delete?")
{
console.log('deleted');
}
else
{
console.log('delete cancelled');
}
}
这样做
function delete()
{
function ok()
{
console.log('deleted');
HideConfirmDiv();
}
function cancel()
{
console.log('delete cancelled');
HideConfirmDiv();
}
ConfirmInDiv('Delete?', ok, cancel);
}
答案 2 :(得分:1)
对我来说这个解决方案要好得多:
HTML:
<div id='modal_dialog'>
<div class='title'></div>
<input type='button' value='yes' id='btnYes' />
<input type='button' value='no' id='btnNo' />
</div>
JS:
function dialog(message, yesCallback, noCallback) {
$('.title').html(message);
var dialog = $('#modal_dialog').dialog();
$('#btnYes').click(function() {
dialog.dialog('close');
yesCallback();
});
$('#btnNo').click(function() {
dialog.dialog('close');
noCallback();
});
}
使用:
dialog('Are you sure you want to do this?',
function() {
//If yes do something
console.log("yes");
},
function() {
//If no do something else
console.log("no");
}
);
如果你没有忘记添加jquery,请不要忘记。