【问题标题】:How to return boolean from confirm dialog plugin?如何从确认对话框插件返回布尔值?
【发布时间】:2014-11-15 14:57:48
【问题描述】:

在 JavaScript 中,他们有确认对话框,在单击是或否按钮时返回真或假。

if (confirm('Your question')) { 
   // do things if OK
}

但它不可自定义,可以在单击弹出窗口中的复选框时停止。

所以我想使用 JQuery 确认或对话插件。但是我发现的插件不返回真或假。它带有按钮功能,我无法从按钮功能返回真或假。

有没有办法在 jQuery 确认中返回像布尔值这样的变量?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

$('.dialog button').click(function () {
  if($(this).attr('class') == 'true') {
    $('p').text('Ok was clicked');
  } else {
    $('p').text('Cancel was clicked');
  }
});
.dialog {
  background-color: #cecece;
  border: 1px solid #000;
  padding: 1%;
  font-family: 'Segoe UI';
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dialog">
  <button class="true">Ok</button>
  <button class="false">Cancel</button>
</div>
<p></p>

回答

您可以确定当时点击了哪个按钮。例如,一个对话框的按钮具有类,真或假。喜欢

<div class="dialog">
   <button class="true">Ok</button>
   <button class="false">Cancel</button>
</div>

您可以将 jQuery 处理为

$('.dialog button').click(function () {
   if($(this).attr('class') == 'true') {
      // OK was clicked
   } else {
      // cancel was clicked.
   }
}

这只是一种方法,您甚至可以使用data- 标签来添加更多功能。但我认为 JavaScript 中没有任何布尔值(jQuery 是 JavaScript 库;它只有 JavaScript 具有的功能)。

你可以试试上面的代码来测试一下。它也有基本的样式,并且按钮用于确定用户选择的真假事物。这是一个自定义确认框。 jQuery 处理它,然后根据条件将值写入p

【讨论】:

    【解决方案2】:

    无法返回值,但有一个变通方法:

    var returnValue;
    
    $("#confirmdialog").dialog({
        modal: true,
        buttons: [{
            text: "Yes",
            "id": "btnOk",
            click: function () {
                returnValue = true;
            },
        }, 
        {
            text: "No",
            click: function () {
                returnValue = false;
            },
        }],
    });
    

    然后检查returnValue

    if(returnValue){
    }
    

    【讨论】:

      【解决方案3】:

      没有允许内联自定义确认对话框的 jquery 插件(返回 false/true)。他们每个人都致力于处理回调。而且不仅有 jquery ui 对话框,还有很多。 Here 是其中的一个列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-03
        • 2015-03-05
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 1970-01-01
        • 2013-05-21
        相关资源
        最近更新 更多