我正在尝试使用jquery和即兴创建用于警报/确认/提示替换的库代码。
我希望能够以相同的方式调用这些函数:
例如。 var getval = jConfirm("Are you sure?");
alert (getval);
我的功能:
function jConfirm(text, title){
var return_val = false;
$.prompt(text, {
title: title,
html: text,
buttons: { OK: true, Cancel: false },
callback:function(e,v,m,f)
{
return_val = v;
}
});
return return_val;}
代码当前继续执行而不等待输入 - 警报立即显示,'getval'永远不会得到值。
如何以与原生确认功能相同的方式即时等待对话输入,并在继续之前将值返回到getval?
答案 0 :(得分:1)
你不能这样做,因为确认/警告/提示是调用浏览器应用程序中代码执行的JS函数,它是用一种语言(例如C#,Java)编写的,它允许创建真正的模态对话框:窗口,用于停止执行应用程序,直到用户关闭或与之交互。因此,在您的情况下,jConfirm方法无法停止执行页面,因为警报可以执行。要做你需要的我建议传递给jConfirm方法一个回调,只有当用户点击确定时才会在即兴回调后执行
jConfirm("Are you sure?","Confirm",dialogResult);
function dialogResult(v)
{
alert(v);
}
function jConfirm(text, title, dialogResultCallback) {
$.prompt(text, {
title: title,
html: text,
buttons: { OK: true, Cancel: false },
callback:function(e,v,m,f)
{
if(v)
dialogResultCallback(v);
}
});
}
答案 1 :(得分:0)
在你深入编写自己的对话系统之前,你看过jQuery ui吗?它提供了一个简单的函数来创建模态对话框。 http://jqueryui.com/dialog/#modal