我正在使用JQuery& JQuery UI和我尝试使用JQuery UI Dialog来解决这个问题,但我无法完成它。
基本上我有这个使用JS确认框的代码:
// if user presses cancel, do not proceed to the next section of the code
if ( ! confirm('Are you sure you want to press OK?')) {
return;
}
.... Lots of code below
我想将其转为使用我可以使用CSS自定义的自定义框。我尝试使用UI对话框:
function confirmIt(text) {
$('#confirm_dialog').dialog({
width: 300,
height: 150,
buttons: {
"OK": function() { return true; },
"Cancel": function() { return false; }
}
});
}
if ( ! confirmIt('Are you sure you want to press OK?')) {
return;
}
.... Lots of code below
现在上面代码的问题是if条件下面的很多代码仍然执行。我知道JQuery Dialog是一个异步过程,但我想知道是否有免费的插件,我可以使用它将返回布尔值?基本上功能明智它应该与JS confirm()
完全相同。我不想在JQuery UI对话框的回调中包含很多代码来实现这一点。我只想停止脚本执行如果CANCEL is clicked
和继续执行OK is clicked
。
答案 0 :(得分:0)
由于无法停止脚本执行(except for debugging),您应该改变方法:
function confirmIt(text, okFunc, cancelFunc) {
$('#confirm_dialog').dialog({
width: 300,
height: 150,
buttons: {
"OK": okFunc && okFunc,
"Cancel": cancelFunc && cancelFunc
}
});
}
confirmIt('Are you sure you want to press OK?', function(){
.... Lots of code below
}, function(){
...function on cancel (which can be empty)
});
因此,如果您对取消按钮没有任何操作,请使用
confirmIt('Are you sure you want to press OK?', function(){
.... Lots of code below
});
或
confirmIt('Are you sure you want to press OK?', confirmFunction);
function confirmFunction(){
.... Lots of code below
}