首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回布尔值的JQuery中的自定义确认框

问返回布尔值的JQuery中的自定义确认框
EN

Stack Overflow用户
提问于 2014-08-25 17:00:09
回答 1查看 2.1K关注 0票数 0

我正在使用JQuery & JQuery UI,我尝试使用JQuery UI对话框来解决这个问题,但我无法完成它。

基本上,我有这样一个代码,它使用JS确认框:

代码语言:javascript
复制
// 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对话框:

代码语言:javascript
复制
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对话框是aync进程,但我想知道是否有这样的免费插件可以用来返回布尔值?从功能上讲,它应该与JS confirm()完全相同。为了实现这一点,我不想在JQuery UI对话框的回调中包装大量代码。我只想停止脚本的执行,如果CANCEL is clicked和继续执行,如果OK is clicked。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 17:17:45

由于无法停止脚本执行(except for debugging),所以您应该修改您的方法:

代码语言:javascript
复制
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)
});

因此,如果取消按钮上没有任何操作,只需使用

代码语言:javascript
复制
confirmIt('Are you sure you want to press OK?', function(){
    .... Lots of code below
});

或

代码语言:javascript
复制
confirmIt('Are you sure you want to press OK?', confirmFunction);

function confirmFunction(){
    .... Lots of code below
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25490789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档