Jquery UI 对话框作为确认

Jquery UI dialog as confirmation

本文关键字:确认 对话框 UI Jquery      更新时间:2023-09-26
  function Globally() {
    $("#dialogid").dialog({ width: 300, modal: true, show: 'drop', hide: 'drop',
        buttons: {
            "Ok": function () { return true; $(this).dialog('close'); },
            "Cancel": function () { return false; $(this).dialog('close'); }
        }
    });
  }
  function test()
  {
    if(Globally())
      alert("Ok");
    else
      alert("Cancel");
  }

我正在尝试制作一个确认对话框,我希望它放在一个函数中(在本例中为 Global(((,因为我在许多不同的函数中使用确认对话框,但这不起作用,控件从 Globally() 函数返回而没有获得true or false值。我希望它停在那里,直到用户按 Ok or Cancel .我该怎么做?

如果你想运行这样的代码,你必须使用内置的确认函数:

var question = confirm("Proceed?")
if (question){
   // continue
 } else {
   // stop
 }

这是因为只有在使用时确认才能阻止整个javascript执行,并允许您选择一个答案或另一个答案(确定,取消(。

像jQuery对话框这样的对话框不能停止脚本执行,所以即使你使用

if(Globally())
  alert("Ok");
else
  alert("Cancel");

它只会执行 Global(( 函数并紧随其后继续 - 而不是等待用户回答。

如果你真的想使用jq对话框,那就在你的按钮上添加回调函数。

"Ok": function () { callbackFunctionTrue(); },
"Cancel": function () { callbackFunctionFalse(); }

并在测试函数中放弃 if/else 语句((。

这不是它的工作原理

只是做

    "Ok": function () { alert('OK'); $(this).dialog('close'); },
    "Cancel": function () { alert('Not ok'); $(this).dialog('close'); }

    "Ok": function () { $(this).dialog('close'); test(1) },
    "Cancel": function () {$(this).dialog('close'); test(0) }

function test(ok){
  alert(ok?"Ok":"Cancel");
}