Javascript 使用表单隐藏模式div

Javascript 使用表单隐藏模式div,javascript,jquery,modal-dialog,Javascript,Jquery,Modal Dialog,首先,我想说我根本不是javascript专家 我正在测试的。 我能够使用插件打开和关闭模态 我已经在modal div中添加了一个表单。 我现在想做的是在用户单击submit按钮时关闭模式,正如您在project网站中看到的那样 问题是我没有像往常一样处理表单。我使用jQuery获取数据,并使用$.ajax向服务器发出请求。这是我的密码: $(function() { $('#add-user').submit(function() { $.ajax({

首先,我想说我根本不是javascript专家

我正在测试的。 我能够使用插件打开和关闭模态

我已经在modal div中添加了一个表单。 我现在想做的是在用户单击submit按钮时关闭模式,正如您在project网站中看到的那样

问题是我没有像往常一样处理表单。我使用jQuery获取数据,并使用$.ajax向服务器发出请求。这是我的密码:

 $(function() {
     $('#add-user').submit(function() {
         $.ajax({
             type: 'post',
             url: '***',
             data: '***',
             contentType: 'application/json',
             dataType: 'json'
         });
         $(this).closest('form').find("input[type=text], textarea").val("");
         $(this).leanModal.closeModal('#cp');
         return false;
     }); 
});
在哪里 添加用户是打开模式的链接。 cp是模态的div id

在这种情况下,div会靠近,但div后面的模糊不会消失,直到用户单击为止。效果与使用$'cp'.remove相同; 发送请求时,如何完全关闭div? 提前谢谢

更新:带有我的代码的JSFIDLE可用。 缺少了一些CSS规则,我没有介绍AJAX请求,但我认为主要代码在那里。

首先$。AJAX是异步的,所以下面几行

$(this).closest('form').find("input[type=text], textarea").val("");
$(this).leanModal.closeModal('#cp');
即使您的查询未成功,也将执行。 你最好这样做

$.ajax({
    ...
    success: function () {
        $(this).closest('form').find("input[type=text], textarea").val("");
        $(this).leanModal.closeModal('#cp');
    }
});
其次,之后,我认为你应该使用

$.leanModal.close_modal('#cp');
$lean_overlay似乎是您想要去除的模糊元素。 最终你可以做$lean_overlay.remove,但是这个插件似乎已经可以管理它了

最后你应该

$(function() {
    $('#add-user').submit(function(e) {
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: '***',
            data: '***',
            contentType: 'application/json',
            dataType: 'json',
            success: function () {
                $('#add-user :input:not(:submit)').val('');
                $.leanModal.close_modal('#add-user');
            }
        });
        return false;
    }); 
});

我试过了。服务器响应为200 OK。但潜水艇还在那里。我错过什么了吗?成功的条件是什么?好的,所以你不必在“添加用户”按钮中观察事件,但在你的表单提交中我很抱歉。添加用户是表单id。这是我的错误。我将尝试创建一个JSFIDLE,其中包含与问题相关的页面内的逻辑。您能尝试给出一个示例吗?@PierredeLESPINAY JSFIDLE已添加。