2014-09-25 110 views
0

我在javascript上弹出一些问题 我需要打开弹出窗口,当我单击输入窗体中的某个文本框,然后提交弹出窗口,然后回到主页面(输入表单)继续工作而不刷新它。Javascript - 提交弹出窗口,无需重新加载HTML5中的父页面

我用同样的实现方法和jQuery这样的 - >HTML 5 and CSS jQuery Log-in and Registration Popup Box - Adam Bray

但后来我没能回到父页面刷新全无。当我点击提交按钮时,它会继续重新加载。 我已经看过有关这就像许多问题 - >php ajax form submit without refresh parent page 这 - >javascript popup reloads parent page -但仍获得远不及我想要我的代码

而且我已经尝试过使用preventDefault();return false;,隐藏的jQuery,或更改类型的按钮形式'提交'到'按钮'太..但没有运气,弹出甚至不会关闭。

这是我用

的JavaScript
<script> 
$(document).ready(function() { 
$("#loginLink").click(function(event){ 
    event.preventDefault(); 
    $(".overlay").fadeToggle("fast"); 
}); 

$(".overlayLink").click(function(event){ 
    event.preventDefault(); 
    var action = $(this).attr('data-action'); 

    $.get("ajax/" + action, function(data) { 
     $(".login-content").html(data); 
    }); 

    $(".overlay").fadeToggle("fast"); 
}); 

$(".close").click(function(){ 
    $(".overlay").fadeToggle("fast"); 
}); 

$(document).keyup(function(e) { 
    if(e.keyCode == 27 && $(".overlay").css("display") != "none") { 
     event.preventDefault(); 
     $(".overlay").fadeToggle("fast"); 
    } 
}); 

});

关闭的弹出按钮功能 - >

<script> 
function closeSelf(){ 
window.close(); 
event.preventDefault(); 
} 

,这是我上弹出按钮 - >

<button type="button" onclick="closeSelf(); return false;">DONE</button> 

我一直在挣扎好几天,任何意见将不胜感激^ _^

噢,我再次怀疑,为什么w本机验证工作在这个弹出?它适用于父,虽然实际上

回答

0

的问题是,在“.overlayLink”单击处理程序

$(".overlayLink").click(function(event){ 
    event.preventDefault(); 
    ... 
}); 

此处理,附以这种方式,不监听表单提交,因此不能抑制它。

要截取表单提交,你需要一个处理程序附加到表单的“onsumbmit”活动,具体如下:

$("#myForm").on('submit', function(event) { 
    event.preventDefault(); 
    ... 
}); 
+0

感谢快速响应^ _ ^。 \t 我试过我们的代码。我改变了我的按钮回到提交,尝试我们的代码,并在我的按钮'onclick'事件调用它,但我的弹出不会关闭(O_o)。并不是$(“。overlayLink”)。click(function(event)用来打开弹出窗口本身吗? – 2014-09-25 22:33:14

+0

Sylvie,在很多方面,我只知道和你的问题一样多,看起来叠加层有一个或多个与'class =“overlayLink”'的链接,当它被点击的时候,它会导致我发出一个ajax请求,所以代码表示NO,'$(“。overlayLink”)。click(function )...'不打开弹出窗口(通过点击“#loginLink”打开弹出窗口并点击“.close”链接或按下键盘的“退出”键)。 – 2014-09-25 23:45:59

+0

您需要将代码安装为我在上面写了'$(“#myForm”)。on('submit',function(event)'。只要确保“myForm”字符串匹配你的表单的id。事件的正常顺序是(i)用户点击“提交”,(ii)发布表单的“提交”事件,(iii)提交处理程序触发,(iv)事件。(v)ajax请求被发送,(vi)服务器返回其响应,(vii)你的ajax成功处理程序触发(viii)返回的数据显示在DOM的“.login-content”元素中。 – 2014-09-25 23:46:23

相关问题