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
。我怎么能这样做?
答案 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");
}