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