如何从确认对话框插件返回布尔值?

时间:2014-09-21 15:10:15

标签: javascript jquery

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

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

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

所以我想使用JQuery确认或对话插件。但是我找到的插件,不会返回true或false。它带有按钮功能,我无法通过按钮功能返回true或false。

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

3 个答案:

答案 0 :(得分:3)

$('.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>

答案

您可以确定单击了哪个按钮。例如,对话框具有带有类的按钮,可以是true或false。像

<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中写入值的工作。

答案 1 :(得分: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){
}

答案 2 :(得分:2)

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