jquery即兴确认/迅速更换

时间:2013-07-09 23:44:42

标签: javascript jquery prompt confirm impromptu

我正在尝试使用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?

2 个答案:

答案 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