php - Javascript - 在结束功能之前等待点击

标签 php javascript jquery html json

我制作了本质上是一个灯箱,如果更改需要用户确认其密码,则会弹出该灯箱,用户在其中输入密码等。

我像这样触发函数:

if(verifyPassword())
{
    //apply change
}

验证函数是:

function verifyPassword() {
$('#confirmpasswordoverlay').fadeIn(300);

$('#submit').click(function() {
    $.post('', { password: $('input[name=password]').val() }, 
            function(check) {
                if(check.error)
                {
                    if(check.password)
                    {
                        //show password error
                        return false;
                    }
                    else
                    {
                        //show error
                        return false;
                    }
                }
                else
                {
                    return true;
                }
            }, 'json');
});

}

基本上,我需要该函数等待,直到单击#submit 以返回 true 或 false。

提前致谢

最佳答案

自 jQuery 1.5.0 起,您可以使用延迟对象应用一些魔法:

$.when( verifyPassword() ).done(function() {
    // do something
});

您需要稍微重写一下verifyPassword():

function verifyPassword() {
    var Notify = $.Deferred();
    $('#confirmpasswordoverlay').fadeIn(300);

    $('#submit').click(function() {
        $.post('', { password: $('input[name=password]').val() }, 
                function(check) {
                    if(check.error) {
                        if(check.password) {
                            //show password error
                            Notify.resolve();
                        }
                        else {
                            //show error
                            Notify.reject();
                        }
                    }
                    else {
                        return true;
                    }
                }, 'json');
        });

    return Notify.promise();
}

这可能不是实现您目标的最优雅的方式,我只是说您可以以这样的方式做到这一点:-)

关于php - Javascript - 在结束功能之前等待点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4903157/

相关文章:

javascript - 全局 If else 语句

javascript - 如何使用 JQuery 删除 HTML 字符串中的所有 "script"标记?

php - 如何将自定义 mysql 列数据添加到 WordPress Loop

javascript - elfinder(一个 Javascript 文件管理器插件)绑定(bind)操作不会在 connector.php 中触发

php - 为什么 echo 在此脚本中不起作用?

javascript - 上传网站时如何在 MVC 页面上结束/停止 JQuery Loader

javascript - 是否可以在 CSS3 中的元素之间创建线条?

javascript - 我们可以在按钮点击事件上使用 "window.setTimeout"吗?

javascript - 如何从事件监听器中的 Chrome 控制台中提到的某些类别中删除所有事件监听器

php - 如何杀死锁定的mysql查询