Jquery UI对话框作为确认

时间:2012-05-19 06:59:22

标签: javascript jquery jquery-ui jquery-ui-dialog

  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");
  }

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

2 个答案:

答案 0 :(得分:1)

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

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

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

jQuery对话框之类的对话框无法阻止脚本执行,所以即使你使用

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

它只会执行Globally()函数并在它之后继续 - 不等待用户回答。

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

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

在测试函数中抛出if / else statement()。

答案 1 :(得分:0)

那;不是它的运作方式

只做

    "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");
}